node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »

gulp-messenger

gulp-messenger

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

Usage

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 };
msg.init(options);
 
 
// 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)

API

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 msg.xxx will be used (default colors, etc)
 
 

For example info Use msg.info 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');
msg.info('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 
gulp.src('src/**/*')
    .pipe(msg.flush.info('Piping Message'));  // 'Piping Message' for each file 

Use msg.flush.info at the and of the stream

gulp.src('src/**/*')
    .pipe(msg.flush.info('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 

msg.version|msg.Version

Returns current module version

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

Show message

Parameters

before
after

Type: String

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

Usage

msg.Info('--', 'Hello World', '*')
data

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
message

Type: String

Lodash compatible template (may also use Underscore over Lodash).

Usage

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

License

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

Credits

gulp-messenger written by Mike Erickson

E-Mail: codedungeon@gmail.com

Twitter: @codedungeon

Webiste: codedungeon.org