bower-logger

The logger used in the various architecture components of Bower.

npm install bower-logger
7 778 downloads in the last day
58 206 downloads in the last week
254 073 downloads in the last month

bower-logger Build Status

The logger used in the various architecture components of Bower.

Usage

.error(id, message, data)

Alias to .log('error', id. message, data)

.conflict(id, message, data)

Alias to .log('conflict', id. message, data)

.warn(id, message, data)

Alias to .log('warn', id. message, data)

.action(id, message, data)

Alias to .log('action', id. message, data)

.info(id, message, data)

Alias to .log('info', id. message, data)

.debug(id, message, data)

Alias to .log('debug', id. message, data)

.log(level, id, message, data)

Emits a log event, with an object like so:

logger.log('warn', 'foo', 'bar', { dog: 'loves cat' })
{
    level: 'warn',
    id: 'foo',
    message: 'bar',
    data: {
        dog: 'loves cat'
    }
}

.prompt(prompts, callback)

Emits a prompt event with an array of prompts with a callback.
prompts can be an object or an array of objects. The callback will be called with an the answer or an object of answers (if prompts was only one or an array respectively). The callback is guaranteed to run only once.

logger.on('prompt', function (prompts, callback) {
    // "prompts" is always an array of prompts
    // Call "callback" with an object of answers when done

    // In this example, we will use the inquirer module to do the
    // prompting for us
    inquirer(prompts, callback);
})

logger.prompt({
    type: 'input'  // Can be 'input', 'confirm' or 'password'
    message: 'Type something',
    validate: function (value) {
        if (value !== 'I am awesome') {
            return 'You must type "I am awesome"'
        }

        return true;
    }
}, function (err, answer) {
    // Error will only happen on unsupported 'type'
    if (err) {
        return console.error(err.message);
    }

    console.log(answer);
});

.pipe(logger)

Pipes all logger events to another logger.
Basically all events emitted with .emit() will get piped.

.geminate()

Creates a new logger that pipes events to the parent logger.
Alias for (new Logger()).pipe(logger).

.intercept(fn)

Intercepts log events, calling fn before listeners of the instance.

#LEVELS

A static property that contains an object where keys are the recognized log levels and values their importance.
The higher the importance, the more important the level is.

License

Released under the MIT License.

npm loves you