13.2. 日志级别和内核日志记录上的 printk 角色
内核报告的每条消息都有一个与它关联的日志级别,用于定义消息的重要性。如什么是内核环缓冲区中所述,内核环缓冲会收集所有日志级别的内核消息。kernel.printk
参数用于定义缓冲区中哪些消息打印到控制台中。
日志级别值按以下顺序划分:
- 0
- 内核紧急情况。系统无法使用。
- 1
- 内核警报。必须立即采取行动。
- 2
- 内核情况被视为是关键的。
- 3
- 常见内核错误情况。
- 4
- 常见内核警告情况。
- 5
- 内核注意到一个正常但严重的情况。
- 6
- 内核信息性消息.
- 7
- 内核调试级别消息。
默认情况下,RHEL 8 中的 kernel.printk
包含以下四个值:
# sysctl kernel.printk
kernel.printk = 7 4 1 7
四个值按顺序定义了以下情况:
- 控制台日志级别,定义打印到控制台的消息的最低优先级。
- 消息没有显式附加日志级别的默认日志级别。
- 为控制台日志级别设置最低的日志级别配置。
在引导时为控制台日志级别设置默认值。
以上每个值都定义了处理错误消息的不同规则。
重要
默认的 7 4 1 7
printk
值可以更好地调试内核活动。但是,当与串行控制台耦合时,这个 printk
设置可能会导致大量 I/O 突发,这可能会导致 RHEL 系统变得暂时不响应。为避免这种情况,把 printk
值设置为 4 4 1 7
通常可以正常工作,但其代价是丢失额外的调试信息。
另请注意,某些内核命令行参数(如 quiet
或 debug
)会更改默认的 kernel.printk
值。
其它资源
-
syslog(2)
手册页