我需要以.json
格式保存日志,当前使用express-js服务器,并且日志显示如下:
Error: Cannot return null for non-nullable field Query.get_bar.
Error: Cannot return null for non-nullable field Query.get_bar.
Error: Cannot return null for non-nullable field Query.get_foo.
我发现有一些记录器框架(log4js,winstonjs),但我不想手动登录(即console.log(123)
),我对重定向STDOUT并将其转换为JSON和写入某些.log
文件。
此任务最简单的解决方案是什么?
更新:GitHub上有一个related问题。
答案 0 :(得分:1)
process.stdout
和process.stderr
管道与使用Node运行的任何实际代码无关,因此,如果要将它们的输出发送到文件,则使主入口点脚本捕获stdout / stderr输出,这只是只要Node.js运行该脚本就可以执行。
您可以通过点击process.stdout.on(`data`, data => ...)
(和stderr等效项)来添加自己编写日志,或者可以pipe their output到文件,或者(因为为什么要重新发明轮子?),您可以找到日志记录解决方案为您完成了此任务,但随后找到了位于您身上的,并要求其他人推荐您的是off topic在Stackoverflow上。
还请注意,stdout / stderr有一些同步/异步怪癖,因此请https://nodejs.org/api/process.html#process_a_note_on_process_i_o阅读,因为其中有一些重要的信息需要您注意。
答案 1 :(得分:0)
温斯顿的example基本上解决了这个问题。