日志级别的历史:
日志级别(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 |