Node.js 使用日志系统/模块/库的原因是什么?

Node.js 使用日志系统/模块/库的原因是什么?,node.js,logging,Node.js,Logging,我正在尝试评估使用node.js这样的日志系统的原因,而不是仅仅编写自己的日志方法。日志库似乎并没有提供太多的功能 一些日志系统(如log4j)具有日志层次结构,如果您登录到a.b.c,它也会登录到a.b和a(除非您有其他复杂的停止传播配置)。这种东西通常是不是太过分了?你在什么情况下需要它 我正在考虑编写一个日志函数,将日志写入mongo数据库,这样我就可以非常轻松地查询和搜索mongo数据库。也许日志库可以做到这一点,但使用日志库所做的工作似乎与从头开始编写日志库所做的工作一样多 简而言之:

我正在尝试评估使用node.js这样的日志系统的原因,而不是仅仅编写自己的日志方法。日志库似乎并没有提供太多的功能

一些日志系统(如log4j)具有日志层次结构,如果您登录到a.b.c,它也会登录到a.b和a(除非您有其他复杂的停止传播配置)。这种东西通常是不是太过分了?你在什么情况下需要它

我正在考虑编写一个日志函数,将日志写入mongo数据库,这样我就可以非常轻松地查询和搜索mongo数据库。也许日志库可以做到这一点,但使用日志库所做的工作似乎与从头开始编写日志库所做的工作一样多


简而言之:使用日志系统的好处是什么

我不了解log4j,也不太了解温斯顿;使用时间超过3分钟。
但以下是我希望在日志系统中看到的几个优点:

误差水平 我必须能够指定要写入的日志级别。最好也有一些默认值(警告、错误、调试等)

流动 当某些东西被记录下来时,您可以做任何您想做的事情:将其写入文件,写入数据库,等等。这取决于您

定制 我希望能够:

  • 时间戳消息
  • 写入
    process.stdout
    时显示彩色消息(开发时非常重要!)
  • 可以使用级别(用于文件)或任何其他内容(在同一进程中启动各种记录器时)作为消息的前缀。这有助于区分写入同一流的不同级别/记录器实例

我不完全理解你的最后一点。为什么日志级别的前缀特定于文件日志记录,还有什么“其他”的例子?另外,你所说的“启动各种记录器”是什么意思?这是为了区分2个或更多的日志记录级别。此外,如果出于某些特定原因需要创建另一个记录器实例,那么在控制台中区分它们当然是一个优势。