Logging: To Console
Print Client's log messages to Server's console package. All messages is enhanced with colors and extra styles for better readability.
This package is not limited to transferring Client's log messages to Server. It can be used on client only, or for printing colorized messages on both Client and Server.
Server example:
Client example:
Installation:
meteor add ostrio:logger # If not yet installed meteor add ostrio:loggerconsole
Support this awesome package:
- Star on GitHub
- Star on Atmosphere
- Tweet
- Share on Facebook
Usage
Initialization [Isomorphic]
new LoggerConsole(LoggerInstance, settings)
LoggerInstance
{Logger} - fromnew Logger()
settings
{Object}settings.format
{Function} - This function must return String. Arguments:
opts
{Object}opts.userId
{String}opts.time
{Date} - Report dateopts.level
{String} - Message level, one of:ERROR
,FATAL
,WARN
,DEBUG
,INFO
,TRACE
,LOG
,*
opts.message
{String} - Report messageopts.data
{Object} - Additional info passed as object
Example: [Isomorphic]
1// Initialize Logger: 2this.log = new Logger(); 3 4// Initialize LoggerConsole and enable with default settings: 5(new LoggerConsole(log)).enable(); 6 7// Initialize LoggerConsole and enable with custom formatting: 8(new LoggerConsole(log, { 9 format: function (opts) { 10 return ((Meteor.isServer) ? '[SERVER]' : "[CLIENT]") + ' [' + opts.level + '] - ' + opts.message; 11 } 12})).enable();
Activate with custom adapter settings: [Isomorphic]
1this.log = new Logger(); 2(new LoggerConsole(log)).enable({ 3 enable: true, 4 filter: ['ERROR', 'FATAL', 'WARN'], /* Filters: 'ERROR', 'FATAL', 'WARN', 'DEBUG', 'INFO', 'TRACE', '*' */ 5 client: true, /* Output logs on both Server's and Client's console */ 6 server: true /* Calls from Client and Server will be executed on Server */ 7});
Log message: [Isomorphic]
1this.log = new Logger(); 2(new LoggerConsole(log)).enable(); 3 4/* 5 message {String} - Any text message 6 data {Object} - [optional] Any additional info as object 7 userId {String} - [optional] Current user id 8 */ 9log.info(message, data, userId); 10log.debug(message, data, userId); 11log.error(message, data, userId); 12log.fatal(message, data, userId); 13log.warn(message, data, userId); 14log.trace(message, data, userId); 15log._(message, data, userId); //--> Plain log without level 16 17/* Use with throw */ 18throw log.error(message, data, usmerId);
Catch-all Client's errors example: [Client]
1/* Store original window.onerror */ 2var _WoE = window.onerror; 3 4window.onerror = function(msg, url, line) { 5 log.error(msg, {file: url, onLine: line}); 6 if (_WoE) { 7 _WoE.apply(this, arguments); 8 } 9};
Use multiple logger(s) with different settings: [Isomorphic]
1this.log1 = new Logger(); 2this.log2 = new Logger(); 3 4(new LoggerConsole(log1)).enable({ 5 filter: ['*'], 6 client: true, 7 server: true 8}); 9 10(new LoggerConsole(log2)).enable({ 11 filter: ['ERROR', 'FATAL'], 12 client: true, 13 server: true 14});