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