Qiu*_*ang 11
在使用了几种不同的记录器之后,我对 Nodejs 记录器有了更多的了解,现在我相信它们不应该一起使用,因为它们是为不同的目的而设计的。另一方面,morgan和winston可以一起使用,例如Node.js -logging / Use morgan和winston,morgan和debug也可以一起使用,Nodejs - How to use morgan with debug
但首先,引用Logging in Node.js did right
由于 NPM 提供了大量模块,因此一开始在 Node.js 应用程序中设置正确的日志记录可能会有点困难。
当我让摩根、温斯顿一起调试时,这确实是我的情况。但后来我意识到它们有重叠的不同目的。因此,当我真正调试问题时,我使用 debugjs,而不是使用 console.log(有人说 debugjs 不是记录器)。完成后,我关闭该调试。
Morgan是专门记录express HTTP请求的。最好在 dev/prod 环境中出于不同目的使用它。
在开发/生产环境中为 Winston 使用不同的日志级别可能是一种常见的做法。我还可以使用express-winston来记录HTTP 请求,而不是使用morgan。
Winston 使用不同的日志级别来关闭某些日志,不像 debugjs 使用命名空间来关闭日志,所以我认为它们不能一起工作。
--- 2021 年更新 ---
自从我在 2018 年第一次回答自己的问题以来,我多次被问到与日志级别相关的问题。我发现针对 debugjs 提出的问题证实了我所说的有关调试的内容,引用其当前维护者的答案
Debug 不是通用日志库,它旨在有条件地打开调试日志。没有日志级别的概念。相反,将您的命名空间分解为不同的组件并启用您关心的组件