log4js-node 如何将console里的全部信息输出到日志文件里?

问题: 为甚么最上面的两条日志:server listen on 3000,和wdd没有被保存在日志文件里? 如何才能把这些console信息也保存在日志里?

log4js-node 配置

// log4js config
log4js.configure({
  appenders:[
    {type:'console'},
    {type:'file', filename:path.join(__dirname, 'logs/well-client.log'), category: 'log4jslog'}
  ],
  replaceConsole: true
});
var logger = log4js.getLogger('log4jslog');

...
app.use(log4js.connectLogger(logger, {level: 'info'}));

console截图

图片描述

日志文件

[2016-12-21 14:43:06.293] [INFO] log4jslog - ::1 - - "GET / HTTP/1.1" 304 - "" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
[2016-12-21 14:43:06.336] [INFO] log4jslog - ::1 - - "GET /css/sf-main.css HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
[2016-12-21 14:43:06.346] [INFO] log4jslog - ::1 - - "GET /js/websocket-suport.min.js HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
[2016-12-21 14:43:06.348] [INFO] log4jslog - ::1 - - "GET /js/well-client.js HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
[2016-12-21 14:43:06.352] [INFO] log4jslog - ::1 - - "GET /js/jquery-1.11.3.min.js HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
...
阅读 11.6k
1 个回答
var log4js = require('log4js');

var levels = ['trace', 'info', 'warn'];
var appenders = [{
    "type": "logLevelFilter",
    "level": 'INFO',
    "appender": {
        "type": "console"
    }
}];
for(var i in levels){
    var level = levels[i];
    appenders.push({
        "type": "logLevelFilter",
        "level": level.toUpperCase(),
        "appender": {
            "type": "dateFile",
            "filename": "/opt/xxx/logs/",
            //目录
            "pattern": "yyyyMMdd-"+level+".log",
            //命名规则,我们是按天,也可以设置为yyyyMMddhh.log,为按时
            "absolute": true,
            "alwaysIncludePattern": true
        }
    });
}

log4js.configure({
    "appenders": appenders
});

log4js.getLogger('xxx');

INFO输出到console,'trace', 'info', 'warn'输出到文件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题