Node.js连接记录器使用情况

时间:2014-01-15 10:02:00

标签: node.js logging connect

我正在尝试使用node.js连接中间件logger()框架。

  app.use(connect.logger("dev"));

此代码为每个请求放置一个日志。我想调试代码并以格式将其写入日志文件(由连接记录器支持,在这里说dev)。这个调试语句可以来自我需要访问logger()方法的代码的任何模块,并将我的对象作为参数,让logger()写入logfile / stdout。

但是在看到logger.js(中间件)的代码时,它绑定了将stream / stdout的日志数据写入res.end对象的功能,这意味着它只执行一次。

有没有办法从代码中的任何地方调用logger方法(如果通过全局导出) 并使用像。

      //test.js module 
      logger("some parameter")

请参阅lib文件logger.js中的logger()调用的返回值

  return function logger(req, res, next) {
    req._startTime = new Date;
// immediate
if (immediate) {
  var line = fmt(exports, req, res);
  if (null == line) return;
  stream.write(line + '\n');
// proxy end to output logging
} else {
  var end = res.end;
  res.end = function(chunk, encoding){
    res.end = end;
    res.end(chunk, encoding);
    var line = fmt(exports, req, res);
    if (null == line) return;
    stream.write(line + '\n');
  };
}


next();

目前,我正在使用console.log()语句进行跟踪。 团队,我非常感谢任何人都可以对它发光。

1 个答案:

答案 0 :(得分:0)

欢迎!

连接记录器不会修改console.log或侦听stdout / stderr 输出

相反,它会自动在每个消息上输出自己的'预定义'消息 请求。

尝试使用winstonlog4js-node进行自定义日志。

在sencha文档http://www.senchalabs.org/connect/logger.html中,他们解释了如何自定义此预定义消息,以及如何向其添加自己的值。

但如果您只是寻找自定义日志格式,那么确实有很好的模块。

搜索"colors" in the npm page