我正在尝试使用node.js连接中间件logger()框架。
app.use(connect.logger("dev"));
此代码为每个请求放置一个日志。我想调试代码并将其写入以下格式的日志文件(由 connect logger 支持,在这里说 dev )。此调试语句可以来自代码的任何模块,我需要访问 logger() 方法并将我的对象作为参数并让 logger() 写入日志文件/stdout。
但是看logger.js(middleware)的代码,它把写入stream/stdout的日志数据的功能绑定到了res.end对象上,这意味着它只执行一次。
有没有办法从代码的任何地方调用记录器方法(如果通过全局导出) 并使用类似。
//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()语句进行跟踪。 团队,如果有人能阐明这一点,我非常感激。
欢迎!
连接记录器不会修改console.log或监听stdout/stderr 输出。
相反,它会自动在每个 请求。
尝试使用 winston 或 log4js-node 来获取自定义日志。
在 sencha 文档中,http://www.senchalabs.org/connect/logger.html,他们解释了如何自定义此预定义消息,以及如何向其中添加您自己的值。
但是,如果您只是在寻找自定义日志格式,那么确实有很好的模块。
在 npm 页面中搜索 “颜色”。