Saturday 10 June 2017

nodejs logger module wrong context

I have a simple nodejs logger module to print 'time, context and message'

module.exports = {

  init: (c) => {

    const config = c || {};
    const context = config.context || 'ROOT';

    console.log('test', c, config);

    return {

      d: (message) => {
        console.log(`${new Date()} [${context}] Debug - ${message}`);
      },

      i: (message) => {
        console.log(`${new Date()} [${context}] Info  - ${message}`);
      },

      w: (message) => {
        console.log(`${new Date()} [${context}] Warn  - ${message}`);
      },

      e: (message) => {
        console.error(`${new Date()} [${context}] Error - ${message}`);
      }

    }

  }

}

Now I require this module from other modules inside my app.

const logger = require('./logger').init('Database'); or const logger = require('./logger').init('WebSocket');

But for some reason from every logging on my console, the context is 'ROOT' but console.log('test', c, config); is called multiple times with the right c and config.

I know that modules are like singletons in one app scope but it is called... Any Ideas?



via Pascal

No comments:

Post a Comment