Novelty Polygonal Mathematics

    prefixed-log
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.0 • Public • Published

    prefixed-log

    NPM version license

    A wrapper around a console.log compatible function to add a prefix to the output, ex.:

    * [foo] hello !
    * [foo] bye !
    
    [1468917781403] > sending request...
    [1468917781407] > handling response...
    

    A common requirement when debugging.

    The trick is that, when the 1st arg is a string :

    • console.log/warn/etc. have a special interface which allows to replace %d placeholders with remaining params
    • console.log/warn/etc. add a spacing between params when not using placeholder

    This small lib take care of everything so that it looks nice.

    installation

    npm i --save prefixed-log

    Then in your code:

    • node stable (4+): const makePrefixedLogger = require('..').factory
    • node legacy (<4): var makePrefixedLogger = require('../dist/index.node-legacy').factory
    • ES2015/ES6: import { factory as makePrefixedLogger } from 'prefixed-log'

    Note: there are examples in folder test/

    Usage

    Note: there are examples in folder test/

    Simplest usage:

    import { factory as makePrefixedLogger } from 'prefixed-log'
    const logger = makePrefixedLogger('* [foo]')
     
    logger('Hello', 42)     --> * [foo] Hello 42

    More advanced usage, specifying a logger:

    import { factory as makePrefixedLogger } from 'prefixed-log'
    const logger = makePrefixedLogger('* [foo]', console.log.bind(console))
     
    logger('Hello', 42)     --> * [foo] Hello 42
    logger('Hello %d', 33)  --> * [foo] Hello 33
    logger({foo: 'bar'})    --> * [foo] { foo: 'bar' }

    Another advanced usage, using a dynamic prefix:

    import { factory as makePrefixedLogger } from 'prefixed-log'
    const logger = makePrefixedLogger(() => Date.now(), console.log.bind(console))
     
    logger('Hello', 42)     --> 1464255584287 Hello 42
    logger('Hello %d', 33)  --> 1464255584288 Hello 33

    Options

    There are secret options :

    const logger = makePrefixedLogger('* [foo]', {
      // default values :
      spacer: ' ',          ///< spacer that will be used between the prefix and the 1st arg *if it is a string*
      spacerAlt: '',        ///< spacer that will be used between the prefix and the 1st arg *if it is NOT a string*
      isEnabled: () => true ///< nothing will be displayed at all if it returns false (useful for disabling debug)
    })

    Keywords

    Install

    npm i prefixed-log

    DownloadsWeekly Downloads

    2

    Version

    2.0.0

    License

    Unlicense

    Last publish

    Collaborators

    • offirmo