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

我试图评估在node.js中使用像Winston这样的日志logging系统的原因,而不是写自己的日志logging方法。 看来日志库并不能提供太多的function。

某些日志logging系统(如log4j)具有日志logging层次结构,如果您login到abc,则会logging到ab和a(除非您有其他复杂的停止传播configuration)。 这种东西通常是矫枉过正的吗? 你需要什么情况?

我正在考虑写一个日志logging函数,将日志写入一个mongo数据库,然后我可以很容易地查询和search。 据推测,一个日志库可以做到这一点,但似乎使用一个库,从头开始编写它将是同样多的工作。

所以简而言之:使用测井系统有什么好处?

我不知道log4j,也不太了解Winston; 没有使用它超过3分钟。
但是我希望在日志系统中看到几个优点:

错误级别

我必须能够指定我想要写入的日志级别。 有一些默认也是很好的(警告,错误,debugging等)。

stream

你可以做任何你想要的东西时logging:写入一个文件,写入数据库等,这取决于你。

定制

我希望能够:

  • 时间戳邮件
  • 写入process.stdout时有彩色的信息(开发时超级重要!)
  • 可以在消息前加上级别(用于文件)或其他任何东西(在同一进程中启动各种logging器时)。 这对区分写入同一个stream的不同级别/logging器实例很有用。