How to use Morgan logger?

后端 未结 10 1639
囚心锁ツ
囚心锁ツ 2020-12-07 11:19

I cannot log with Morgan. It doesn\'t log info to console. The documentation doesn\'t tell how to use it.

I want to see what a variable is. This is a code from

10条回答
  •  情书的邮戳
    2020-12-07 12:08

    I faced the same problem ago and instead, I used winston. As fellas above said, morgan is for automated logging of request/response. Winston can be configured pretty much same way as log4Net/log4J, has severity levels, different streams to which you can log etc.

    For example:

    npm install winston

    Then, if you call the below code somewhere on you application initialization:

    var winston = require('winston');
    
    // setup default logger (no category)
    winston.loggers.add('default', {
        console: {
            colorize: 'true',
            handleExceptions: true,
            json: false,
            level: 'silly',
            label: 'default',
        },
        file: {
            filename: 'some/path/where/the/log/file/reside/default.log',
            level: 'silly',
            json: false,
            handleExceptions: true,
        },
    });
    
    //
    // setup logger for category `usersessions`
    // you can define as many looggers as you like
    //
    winston.loggers.add('usersessions', {
        console: {
            level: 'silly',
            colorize: 'true',
            label: 'usersessions',
            json: false,
            handleExceptions: true,
        },
        file: {
            filename: 'some/path/where/the/log/file/reside/usersessions.log',
            level: 'silly',
            json: false,
            handleExceptions: true,
        },
    });
    

    note: before calling above code, winston.loggers is empty, i.e you dont have any loggers configured yet. Pretty much like Log4Net/J XmlConfigure methods - you need to first call them, to init your logging.

    Then, later wherever in you application server side code you may do:

    var winston = require('winston');
    // log instances as defined in first snippet
    var defaultLog = winston.loggers.get('default'); 
    var userSessionsLog = winston.loggers.get('usersessions');
    
    defaultLog.info('this goes to file default.log');
    userSessionsLog.debug('this goes to file usersessions.log')
    

    Hope that helps.

    for further documentation reference: https://www.npmjs.com/package/winston

提交回复
热议问题