如何在收到错误响应时使用log4js登录文件?

时间:2017-01-05 14:40:10

标签: express log4js-node

当我只收到客户端的错误响应时,我想登录某个文件。当我得到其他人时,我想在终端上打印消息。所以,我正在使用expresslog4js

以下是我的代码的一部分。

const log4js = require('log4js'),
  express = require('express'),
  app = express();

log4js.configure({
  appenders: [
    {type: 'console'},
    {type: 'file', filename: 'logs/logs.log', category: 'file'}
  ]
});

const fileLogger = log4js.getLogger('file'),
  consoleLogger = log4js.getLogger('console');

fileLogger.setLevel('ERROR');

app.enable('trust proxy');
app.use(log4js.connectLogger(fileLogger, { format: ':method :url' }));
app.use(log4js.connectLogger(consoleLogger, { level: 'auto', format: ':method :url' }));

我预计错误响应会被fileLogger过滤,然后会将日志消息写入logs.log,而其他消息会被consoleLogger过滤,然后消息会打印在终端上,但不是。

有没有一种好方法可以使用connectLogger来解决它?

2 个答案:

答案 0 :(得分:0)

我提到this,我知道多次使用connectLogger进行快速路由是不可能的。

答案 1 :(得分:0)

调用不同的类别记录器以显示不同操作的日志。

var logger = log4js.getLogger('file');

app.js中的用户connectLogger只有一次!