如何写入Node.js Connect/Express记录器?

Gre*_*ell 5 connect node.js express

我有一个Express项目,我将其设置为登录到文件:

logPath = '/mnt/log/api.log'
logfile = fs.createWriteStream logPath, {flags: 'a'} 

loggingOptions = 
  format: 'default'
  stream: logfile

app.use express.logger(loggingOptions)
Run Code Online (Sandbox Code Playgroud)

这适用于记录请求,但我想将自己的消息添加到日志中,但我无法弄清楚如何.console.log没有被重定向,并且似乎没有创建我可以写入的"记录器"对象.

那么我唯一的选择是传递对文件流的引用并写入该文件流?

Bri*_*ink 0

我不知道如何完全按照你的要求去做,但这就是我所做的,到目前为止效果很好。

我配置了快速记录器(如果您正在寻找文档,实际上它是连接记录器),如下所示,所有日志输出都发送到标准输出。我可以使用 console.log("blah blah") 打印到相同的输出。

app.use(express.logger("default"));
Run Code Online (Sandbox Code Playgroud)

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

这在开发过程中也很有效,因为我在 shell 窗口中运行节点并且可以看到所有相同的输出。(实际上,我在开发过程中使用了express.logger(“dev”),因为输出对于开发工作来说更加清晰。)