在 Linux 系统中,“日志级别(Log Level)”用来表示日志信息的重要程度或紧急程度。不同级别用于区分“系统出大事了”和“只是普通记录一下”,方便管理员快速定位问题、控制日志输出量。
下面从 内核日志级别 和 系统/应用日志级别 两个层面说明。
内核使用数字表示日志级别(数字越小越严重):
| 级别 | 数值 | 名称 | 说明 |
|---|---|---|---|
| 0 | emerg | 系统不可用 | 内核崩溃级别 |
| 1 | alert | 必须立即处理 | 严重错误 |
| 2 | crit | 临界状态 | 硬件/软件严重问题 |
| 3 | err | 错误 | 一般性错误 |
| 4 | warn | 警告 | 可能出问题 |
| 5 | notice | 注意 | 正常但重要 |
| 6 | info | 信息 | 普通信息 |
| 7 | debug | 调试 | 调试信息 |
示例:
dmesg -l err,warn
只显示错误和警告级别内核日志。
在 /etc/rsyslog.conf 中常见日志级别(由高到低):
emerg
alert
crit
err
warning
notice
info
debug
示例:
*.info;mail.none;authpriv.none /var/log/messages
含义:
*:所有服务info:记录 info 及以上级别mail.none:不记录 mail 的 info很多服务(如 Nginx、Java、Python)使用类似级别:
FATAL / EMERG
ERROR
WARN
INFO
DEBUG
TRACE
示例(Nginx):
error_log /var/log/nginx/error.log warn;
只记录 warn 及以上错误。
控制日志量
info 或 warndebug快速定位问题
err/crit:必须看debug:排查细节避免磁盘被日志写满
# 查看内核日志
dmesg
# 实时查看系统日志
tail -f /var/log/messages
# journalctl 按级别
journalctl -p err
如果你愿意,我可以:
你更想了解哪一块?