日志级别的历史:

日志级别(log level)起源于 20 世纪 80 年代的由 Eric Allman 开发的项目 Sendmail 。该项目需要一种日志记录解决方案,这最终导致了 System Logging Protocol(Syslog) 的创建以及不同日志级别的概念。后来 Syslog 被广泛应用于各种应用程序,并成为系统日志和事件消息的标准协议。

日志级别

按重要性递减排列:

  • OFF:不记录任何日志信息。
  • FATAL:表示应用程序即将发生严重问题或数据损坏,意味着应用程序处于灾难性状态,重要功能无法正常工作。
  • ERROR:表示无法访问服务或文件等重要故障,应用程序可能继续运行,但需要及时处理。
  • WARN:表示检测到意外问题,可能会影响特定进程的运行,但不会对应用程序造成损害。
  • INFO:记录应用程序的正常行为,如服务启动或停止、数据库添加等,通常不需要跟进处理。
  • DEBUG:提供详细的诊断信息,用于故障诊断、排查或测试应用程序。
  • TRACE:捕获应用程序行为的详细信息,比DEBUG级别更细粒度,用于查看代码中的参数或解释算法的步骤。
  • ALL:记录所有定义的日志级别,包括自定义日志级别,相当于综合所有级别的日志。

常用日志库

编程语言 日志库
C++ spdlog, Boost.Log
Java Log4j, Slf4j
Python Python logging, Loguru
JavaScript Winston, Bunyan
C# NLog, Serilog
Go logrus, zap
Ruby Log4r, Logger
PHP Monolog, Laravel Log