monolog

0.0.5 • Public • Published

mongolog.js

https://github.com/Mparaiso/monolog.js

NPM

Build Status

Coverage Status

Log everything everywhere, monolog for javascript and node

author mparaiso mparaiso@online.fr

heavily inspired by monolog PHP library

Installation

npm install -g monolog

Handlers

  • ConsoleLogHandler : log to console
  • CouchDBHandler : log to CouchDB
  • MongoDBHandler : log to MongoDB
  • StreamHandler : log to a stream
  • TestHandler : log to an array
  • NullHandler : null logging

Processors

  • ExpressProcessor : get express request data
  • WebProcessor : get server data

Formatters

  • JSONFormatter : format log to JSON
  • LineFormatter : format log to a string

Usage

Basic usage

    var monolog = require('monolog')
        , Logger = monolog.Logger
        , StreamHandler = monolog.handler.StreamHandler;
 
    //create a Log channel
    var log = new Logger('name')
    //create a Log handler
    log.pushHandler(new StreamHandler('/path/to/your.log',Logger.DEBUG))
    //listen to log events
    log.on("log",function(error,record,handler){console.log(arguments)});
    // add records to the log
    log.warn('Foo')
    log.err('Bar')
    log.debug('Baz')

Server request logging

    var http, logger, monolog, port, server, webProcessor;
 
    http = require('http');
    monolog = require('monolog');
    port = 3000;
    server = http.createServer();
    logger = new monolog.Logger("server logger");
    logger.pushHandler(new monolog.handler.ConsoleLogHandler);
    // a WebProcessor extracts data from each request and add it to the log records
    logger.pushProcessor(new monolog.processor.WebProcessor(server));
 
    server.on('request', function(req, res) {
      logger.info('logging request');
      return res.end('ok!');
    });
 
    server.listen(3000);
 
    console.log("listening on port " + port);

CouchDB Logging

    var monolog,logger;
 
    monolog=require('monolog');
    logger = new monolog.Logger("couchdb logger");
    logger.pushHandler(new monolog.handler.CouchDBHandler({
        host:"localhost",
        dbname:"logger"
    }));
    logger.on('log',function(err,res,record,handler){
        console.log(arguments);
    });
    logger.info('Logging to couchdb');

MongoDB Logging ( with mongodb package)

    var monolog,logger,mongodb;
    monolog=require('monolog');
    mongodb = require('mongodb').MongoClient.connect("localhost",function(err,db){
        logger=new monolog.Logger("channel name");
        logger.pushHandler(new monolog.handler.MongoDBHandler(db,"log_collection"));
        logger.info("log message");
    });
 

Creating a simple logger middleware for express

in a file called logger.js

     "use strict";
     /**
      * monolog middleware for connect and express
      * USAGE
      * =====
      * var app=express()
      * app.use(logger.middleware(app,"debugging"));
      * 
      */
     var monolog = require('monolog');
     /**
      * @type {monolog.Logger} 
      */
     var logger = new monolog.Logger("express logger");
 
     logger.addHandler(new monolog.handler.StreamHandler(__dirname + "/../temp/log.txt"));
     /**
      * [middleware description]
      * @param  {Express} app     express app
      * @param  {String} message log message
      * @return {Function}         middleware
      */
     logger.middleware = function(app, message) {
      message = message || "debug";
      logger.addProcessor(new monolog.processor.ExpressProcessor(app));
      app.set('logger', logger);
      var F =  function(req, res, next) {
      logger.debug(message);
      next();
      };
      F.logger = logger;
      return F;
     };
 
     module.exports = logger;

Readme

Keywords

none

Package Sidebar

Install

npm i monolog

Weekly Downloads

25

Version

0.0.5

License

LGPL

Last publish

Collaborators

  • mpinteractiv