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没有被重定向,并且似乎没有创建我可以写入的"记录器"对象.
那么我唯一的选择是传递对文件流的引用并写入该文件流?
我不知道如何完全按照你的要求去做,但这就是我所做的,到目前为止效果很好。
我配置了快速记录器(如果您正在寻找文档,实际上它是连接记录器),如下所示,所有日志输出都发送到标准输出。我可以使用 console.log("blah blah") 打印到相同的输出。
app.use(express.logger("default"));
Run Code Online (Sandbox Code Playgroud)
在生产服务器上,我将节点的所有输出重定向到日志文件。
这在开发过程中也很有效,因为我在 shell 窗口中运行节点并且可以看到所有相同的输出。(实际上,我在开发过程中使用了express.logger(“dev”),因为输出对于开发工作来说更加清晰。)