Console/Gulp and File Logger

Downloads in past


2130.28.26 years ago9 years agoMinified + gzip package size for gulp-messenger in KB



gulp plugin for browser, command line notification and logging!

Build Status Dependency Status npm() npm()
View on npm

Install with npm

npm install gulp-messenger


var msg = require('gulp-messenger');

msg.init(); // initialize module, otherwise defaults will be used

// this example will enable file logging (see options below)
msg.init({logToFile: true});

// this will disable logging to file and interpolation variables will be font style as message (no bold)
var options = { logToFile: false, boldVariables: false };

// You can use titleCase or lower case for msg methods
msg.Info('-', 'Loading...', '*');
msg.log    ('style: <%= name %>', {name: 'info'});     // default color White
msg.Info   ('style: <%= name %>', {name: 'info'});     // default color Cyan
msg.Success('style: <%= name %>', {name: 'success'});  // default color Green
msg.Warning('style: <%= name %>', {name: 'warning'});  // default color Yellow
msg.Error  ('style: <%= name %>', {name: 'error'});    // default color Red
msg.Note   ('style: <%= name %>', {name: 'note'});     // default color Orange
msg.Time   ('style: <%= name %>', {name: 'time'});
msg.Debug  ('style: <%= name %>', {name: 'debug'});
msg.Table  (array|object)


info/Info, success/Success, warning/Warning, error/Error, note/Note, time/Time, debug/Debug, line/Line

  • lowercase methods are to be used in gulp pipeline or outside (same API can be used for both Node, Browser, and Gulp)
  • Titlecase methods are to be used outside of gulp (ie Node or browser)

Default Options (supplied to init method)
var defOptions = {
    logToFile:          false,
    logTimestampFormat: 'YYYY-MM-DD HH:mm:ss Z',
    logToConsole:       true,
    logPath:            'logs/',
    logFile:            'app.log',
    timestamp:          false,
    rotateLog:          false,
    boldVariables:      true,
    useDumpForObjects:  true

logToFile (default: false)
- will log the supplied message to `logger` instance and log to file

logToConsole (default: true)
- will log message to console

logTimestampFormat (default: YYYY-MM-DD HH:mm:ss Z)
- when logging to file, uses momentjs formats

logPath (default: 'logs/' at root level)
- desired path where log files will be stored

logFile (default: 'app.log')
- desired filename where log files will be stored

timestamp (default: false)
- Will include timestamp on consoled messages

rotateLog (default: false)
- will create a new log file each day

boldVariables (default: true)
- when perform interpolation, the actual variable will be bold

useDumpForObjects (default: true)
- when enabled, is passing a single object paramter, msg.dump() will be used instead of standard console output
- when disabled, native will be used (default colors, etc)

For example info Use for each file into the stream
msg.Info('This information message logged to console and optionally log file.  Configured by `options` parameter supplied to `msg.init` method');'This information message logged to console and optionally log file.  Configured by `options` parameter supplied to `msg.init` method');

or -

// If you using in gulp stream, include the `flush` property as shown here
// All messenger routines (except dump) are supported in the gulp pipleline
    .pipe('Piping Message'));  // 'Piping Message' for each file

Use at the and of the stream
    .pipe('Process Completed Successfully')); //'Process Completed Successfully' at the and of stream

Use msg.Info from the outside of the stream
msg.Info('Application Message'); //'Application Message' in node.js application


Returns current module version

msg.Info(before, message, after, data)

Show message


Type: String
Delimiter before/after the message. Each character is repeated 80 times


msg.Info('--', 'Hello World', '*')
Type: Object
Data for message. Inherited values:
env           - process.env
file          - vinyl file
file.relative - relative path (extra field)
file.basename - basename (extra field)
duration      - duration of streaming
totalDuration - duration from gulpfile start
Type: String
Lodash compatible template (may also use Underscore over Lodash).


msg.Info('Environment: <%= env.NODE_ENV %>. Name: <%= name %>', {name: 'codedungeon'})
//Environment: dev. name: codedungeon


Copyright (c) 2015-2016 Mike Erickson Released under the MIT license


gulp-messenger written by Mike Erickson
Twitter: @codedungeon