ostrio:logger

v1.0.0Published 9 years ago

This package has not had recent updates. Please investigate it's current state before committing to using it in your project.

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});