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

标签 node.js logging

我正在尝试评估使用像 Winston 这样的日志系统的原因在 Node.js 中与仅编写我自己的日志记录方法相比。日志库似乎并没有提供太多功能。

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

我正在考虑编写一个日志记录函数,将日志写入 mongo 数据库,然后我就可以非常轻松地查询和搜索该数据库。想必日志库可以做到这一点,但似乎使用库来实现这一点与从头开始编写它的工作量一样多。

简而言之:使用日志系统有什么好处?

最佳答案

我不太了解log4j,也不太了解Winston;超过 3 分钟未使用。
但以下是我希望在日志系统中看到的一些优点:

错误级别

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

流媒体

当某些内容被记录时,您可以做任何您想做的事情:将其写入文件、写入数据库等。这取决于您。

定制

我希望能够:

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

关于node.js - 使用日志系统/模块/库的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17662605/

相关文章:

ubuntu - "No such file or directory"尝试打开 RabbitMQ 日志时出错

javascript - 您可以在不接触服务器的情况下通过网络套接字将客户端连接到客户端吗?

javascript - 类似于 Promise.resolve() 的 Observable 运算符

java - 如何在多个java项目中使用同一个记录器

spring - Spring Data 是否强制依赖于 SLF4j?

java - 如何使用 LOG4J 将不同级别的特定类记录到不同的附加程序

javascript - 从命令行读取参数 - 错误 TS2304 : Cannot find name 'process'

node.js - 创建新文件夹后谷歌驱动器API上传文件

node.js - Electron 内部 Node Web 服务器的自签名证书

python - 在日志中使用模块名称登录多个类