UNPKG

@magic/log

Version:

enhanced console.log

200 lines (126 loc) 3.99 kB
# @magic/log simple server side logging. basically console.log + loglevels + process.env awareness [html-docs](https://magic.github.io/log) [![NPM version][npm-image]][npm-url] [![Linux Build Status][travis-image]][travis-url] [![Windows Build Status][appveyor-image]][appveyor-url] [![Coverage Status][coveralls-image]][coveralls-url] [![Greenkeeper badge][greenkeeper-image]][greenkeeper-url] [![Known Vulnerabilities][snyk-image]][snyk-url] [npm-image]: https://img.shields.io/npm/v/@magic/log.svg [npm-url]: https://www.npmjs.com/package/@magic/log [travis-image]: https://img.shields.io/travis/com/magic/log/master [travis-url]: https://travis-ci.com/magic/log [appveyor-image]: https://img.shields.io/appveyor/ci/magic/log/master.svg [appveyor-url]: https://ci.appveyor.com/project/magic/log/branch/master [coveralls-image]: https://coveralls.io/repos/github/magic/log/badge.svg [coveralls-url]: https://coveralls.io/github/magic/log [greenkeeper-image]: https://badges.greenkeeper.io/magic/log.svg [greenkeeper-url]: https://badges.greenkeeper.io/magic/log.svg [snyk-image]: https://snyk.io/test/github/magic/log/badge.svg [snyk-url]: https://snyk.io/test/github/magic/log #### installation: ```javascript npm install @magic/log ``` #### usage: ##### import ```javascript import log from '@magic/log' ``` ##### log levels ```javascript // set logLevel to all log.setLevel('all') log.setLevel(0) // logLevel warn log.setLevel('warn') log.setLevel(1) // only log errors: log.setLevel('error') log.setLevel(2) // if production, set logLevel to "warn", if development, "all" log.resetLevel() // get current logLevel log.getLevel() ``` ##### log functions ```javascript // only outputs if logLevel === 'all' log.info('Some interesting yet useless information') // only outputs if logLevel === 'all'. // output of first argument is green. log.success('yay', 'only the first', 'argument was green') // always outputs. first argument will be red log.error('ERROR:', 'error messsage') // outputs if logLevel === 'warn' || 'all' log.warn('WARN:', 'warn message') // make a message greyed out log.annotate('Annotate this message') // return process.hrtime to use in log.timeTaken const start = log.hrtime() // get delta between one hrtime and another const delta = log.hrtime(start) // print the s, ms or ns since start log.timeTaken(start, 'before', 'after') // logs 'before xns after' ``` ##### changelog #####v0.0.3 log.error now converts errors for better logging #### 0.1.0 use ecmascript modules #### 0.1.1 bump to get this version to be the default for install. 0.1.0-cjs was preferred, but is deprecated. #### 0.1.2 add log.hrtime and log.timeTaken #### 0.1.3 require node >= 13.5.0 #### 0.1.4 log.timeTaken(time, pre, post): if pre ends and post starts with a string delimiter, the time value between those string delimiters does not get spaces added around it. #### 0.1.5 bump required node version to 14.2.0 #### 0.1.6 update dependencies #### 0.1.7 change log.level initialization #### 0.1.8 - bump required node version to 14.15.4 - update dependencies ##### 0.1.9 update dependencies ##### 0.1.10 update @magic/types to avoid circular dependency ##### 0.1.11 - log.timeTaken now takes a config object as second parameter, `log.timeTaken(time, { pre: '', post: '', log: true })`. three argument call is possible too: `log.timeTaken(time, pre, post, log)` - update dependencies ##### 0.1.12 update dependencies ##### 0.1.13 remove unwanted log from log.timeTaken ##### 0.1.14 - update dependencies - log.timeTaken now also returns μs if needed ##### 0.1.15 update dependencies ##### 0.1.16 update dependencies ##### 0.1.17 update dependencies ##### 0.1.18 update dependencies ##### 0.1.19 - add jsdoc types - add tests to get 100% coverage - update dependencies ##### 0.1.20 - export types from package.json files array - update dependencies ##### 0.1.21 - update dependencies ##### 0.1.22 - unreleased ...