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(),那么上线的时候,改动这个东西就要花很多时间。

  • 相关阅读:
    vue换一换功能原型
    一些文章收集
    mint-ui popup自动关闭
    vue 实现二选一列表
    用数组实现矩阵乘法
    表格
    表单
    django项目创建和结构解释
    js操作元素样式
    操作标签属性
  • 原文地址:https://www.cnblogs.com/coding4/p/5866430.html
Copyright © 2011-2022 走看看