如何写入Node.js Connect / Expresslogging器?

我有一个Express项目,我已经设置login到一个文件:

logPath = '/mnt/log/api.log' logfile = fs.createWriteStream logPath, {flags: 'a'} loggingOptions = format: 'default' stream: logfile app.use express.logger(loggingOptions) 

这适用于logging请求,但我想添加自己的消息到日志,但我不知道如何。 console.log没有redirect,并且似乎没有创build可以写入的“logging器”对象。

那么我唯一的select就是传递一个对文件stream的引用并写入这个引用?

我不知道如何去做你正在问的东西,但是这是我所做的,到目前为止它运作良好。

我configuration快速logging器(实际上是连接logging器,如果你正在寻找文档),如下所示,所有的日志输出到标准输出。 我可以用console.log(“blah blah”)打印到相同的输出。

 app.use(express.logger("default")); 

在生产服务器上,我将节点的所有输出redirect到日志文件。

这在开发过程中也能很好地工作,因为我在shell窗口中运行节点,可以看到所有相同的输出。 (实际上我在开发过程中使用了express.logger(“dev”),因为输出对于开发工作来说是非常干净的。)

您可以创build自己的日志logging中间件:

 app.use (req, res, next) -> logFile.write "anything you want" next() 

定义像其他中间件一样的error handling中间件,除了四个参数而不是三个,特别是签名(err,req,res,next)):

  app.use(function(err, req, res, next){ console.error(err.stack); res.status(500).send('Something broke!'); }); 

http://expressjs.com/guide/error-handling.html