zoukankan      html  css  js  c++  java
  • log4js

    这一篇足够:转载:http://www.cnblogs.com/Joans/p/4092293.html

    代码贴出来吧:

    log.js

    var log4js = require('log4js');
    log4js.configure({
        appenders: [
            {
                type: 'console',
                category: "console"
            }, //控制台输出
            {
                type: "dateFile",
                filename: 'logs/log.log',
                pattern: "_yyyy-MM-dd",
                alwaysIncludePattern: false,
                category: 'dateFileLog'
            },
            {
                type: "dateFile",
                filename: 'logs/sqllog.log',
                pattern: "_yyyy-MM-dd",
                alwaysIncludePattern: false,
                category: 'sqlFileLog'
            },
            {
                type: 'file',
                filename: 'logs/soldier.log',
                category: 'soldierLog'
            }
        ],
        replaceConsole: true,   //替换console.log
        levels: {
            dateFileLog: 'INFO',
            sqlFileLog: 'INFO',
            soldierLog: 'ERROR'
        }
    });
    
    var dateFileLog = log4js.getLogger('dateFileLog');
    var soldierLog = log4js.getLogger('soldierLog');
    var sqlFile = log4js.getLogger('sqlFileLog');
    
    
    //exports.logger = dateFileLog;
    
    exports.use = function (app) {
        //页面请求日志,用auto的话,默认级别是WARN
        //app.use(log4js.connectLogger(dateFileLog, {level:'auto', format:':method :url'}));
        app.use(log4js.connectLogger(dateFileLog, {level: 'debug', format: ':method :url'}));
    };
    
    global.logger = dateFileLog;
    global.sqlLogger = sqlFile;
    global.soldierLog = soldierLog;
    

    在express初始化时候:

    var log = require('./log4');//引入Log4js

    log.use(app);//app为express的对象

    虽然设置的debug模式,但是只有info以上的可以打出来,info也可以

    其中type的格式有file 还有datefile之类的。

    log4js的输出级别6个: trace, debug, info, warn, error, fatal

    • logger.trace(‘Entering cheese testing’);
    • logger.debug(‘Got cheese.’);
    • logger.info(‘Cheese is Gouda.’);
    • logger.warn(‘Cheese is quite smelly.’);
    • logger.error(‘Cheese is too ripe!’);
    • logger.fatal(‘Cheese was breeding ground for listeria.’);

    如果输出级别是INFO,则不会打印出低于info级别的日志trace,debug,只打印info,warn,error,fatal。这样做 的好处在于,在生产环境中我们可能只关心异常和错误,并不关心调试信息。从而大大减少日志的输出,能减少磁盘写入。而在开发环境中,我们可以需要打印非常 多的信息,帮助开发人员定位错误,调试代码。

    还有一个好处就是,代码中可以混有各种的日志打印代码。我们只要在一个配置文件中,修改输出级别,日志输出就会发生变化,不用修改所有的代码。如果所有地方都是console.log(),那么上线的时候,改动这个东西就要花很多时间。

  • 相关阅读:
    springboot maven打包插件
    maven打包指定main入口插件
    团队开发环境一致性性要求
    springboot 在idea中实现热部署
    IDEA 2018.1可用License服务(持续更新)
    IDEA打jar包
    3月18号
    3月17号
    3月16号
    3月13号
  • 原文地址:https://www.cnblogs.com/coding4/p/5866430.html
Copyright © 2011-2022 走看看