Red Hat Training

A Red Hat training course is available for RHEL 8

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

四个值按顺序定义了以下情况:

  1. 控制台日志级别,定义打印到控制台的消息的最低优先级。
  2. 消息没有显式附加日志级别的默认日志级别。
  3. 为控制台日志级别设置最低的日志级别配置。
  4. 在引导时为控制台日志级别设置默认值。

    以上每个值都定义了处理错误消息的不同规则。

重要

默认的 7 4 1 7 printk 值可以更好地调试内核活动。但是,当与串行控制台耦合时,这个 printk 设置可能会导致大量 I/O 突发,这可能会导致 RHEL 系统变得暂时不响应。为避免这种情况,把 printk 值设置为 4 4 1 7 通常可以正常工作,但其代价是丢失额外的调试信息。

另请注意,某些内核命令行参数(如 quietdebug)会更改默认的 kernel.printk 值。

其它资源

  • syslog(2) 手册页