Meteor isomorphic logger driver
Logger package to be used with any adapter, ex.: MongoDB, Log files, Server and/or Client console.
With range of settings, like Server and/or Client execution, filters by log levels (types, like warn
, info
, etc.).
Install:
meteor add ostrio:logger
Usage
To use this package you need to install an adapter:
- File - Simply store application logs into file within ostrio:logger package;
- Mongo - Simply store application logs into MongoDB within ostrio:logger package;
- Console - Simply output Client application logs into Server's console within ostrio:logger package.
Log [Server
& Client
]
1/* 2 message {String|Number} - Any text message 3 data {Object} - [optional] Any additional info as object 4 userId {String} - [optional] Current user id 5 */ 6Meteor.log.info(message, data, userId); 7Meteor.log.debug(message, data, userId); 8Meteor.log.error(message, data, userId); 9Meteor.log.fatal(message, data, userId); 10Meteor.log.warn(message, data, userId); 11Meteor.log.trace(message, data, userId); 12Meteor.log._(message, data, userId); //--> Shortcut for logging without message, e.g.: simple plain log 13 14/* Use with throw */ 15throw Meteor.log.error(message, data, userId);
Register new adapter [Server
& Client
]
1/* 2 name {String} - Adapter name 3 emitter {Function} - Function called on Meteor.log... 4 init {Function} - Adapter initialization function 5 denyClient {Boolean} - Strictly deny execution on client, only pass via Meteor.methods 6 */ 7Meteor.log.add(name, emitter, init, denyClient); 8 9var emitter = function(level, message, data, userId){ 10 Meteor.log.collection.insert({ 11 userId: userId, 12 level: level, 13 message: message, 14 additional: data 15 }); 16}; 17 18var init = function(){ 19 Meteor.log.collection = new Meteor.Collection("logs"); 20}; 21 22Meteor.log.add('Mongo', emitter, init, true);
Enable/disable adapter and set it's settings [Server
& Client
]
1/* 2 name {String} - Adapter name 3 options {Object} - Settings object, accepts next properties: 4 enable {Boolean} - Enable/disable adapter 5 filter {Array} - Array of strings, accepts: 6 'ERROR', 'FATAL', 'WARN', 'DEBUG', 'INFO', '*' 7 in lowercase and uppercase 8 default: ['*'] - Accept all 9 client {Boolean} - Allow execution on Client 10 server {Boolean} - Allow execution on Server 11 */ 12Meteor.log.rule(name, options); 13 14/* Examples: */ 15Meteor.log.rule('File', 16{ 17 enable: true, 18 filter: ['ERROR', 'FATAL', 'WARN'], 19 client: false, /* This allows to call, but not execute on Client */ 20 server: true /* Calls from client will be executed on Server */ 21}); 22 23Meteor.log.rule('Console', 24{ 25 enable: true, 26 filter: ['*'], 27 client: true, 28 server: true 29}); 30 31Meteor.log.rule('Mongo', 32{ 33 enable: true 34} 35});