在 Debian 5 和 6 之间,kernel.printk 中的默认建议值/etc/sysctl.conf
从 更改kernel.printk = 4 4 1 7
为kernel.printk = 3 4 1 3
。我知道第一个值对应于控制台的值。接下来的 3 个值是什么?
数值与 syslog 日志级别的含义相同吗?或者他们有不同的定义?
我在搜索中是否缺少一些文档,或者是找出内核源代码的唯一位置。
答案1
Sysctl 设置记录在Documentation/sysctl/*.txt
在内核源代码树中。在 Debian 上,安装linux-doc
包含文档usr/share/doc/linux-doc-*/Documentation/
(大多数发行版都有类似的包)。从Documentation/sysctl/kernel.txt
:
中的四个值分别
printk
表示:console_loglevel
、default_message_loglevel
、minimum_console_loglevel
和default_console_loglevel
。这些值会影响
printk()
打印或记录错误消息时的行为。请参阅man 2 syslog
有关不同日志级别的更多信息。
console_loglevel
:优先级高于此的消息将打印到控制台default_message_loglevel
:没有明确优先级的消息将以此优先级打印minimum_console_loglevel
:console_loglevel 可设置的最小(最高)值default_console_loglevel
:默认值console_loglevel
我没有找到任何明确的散文解释其default_console_loglevel
用途。在里面Linux内核源码, kernel.printk
sysctl 设置console_printk
。该default_console_loglevel
字段似乎没有在任何地方使用。
答案2
kernel.printk
数值描述
- “0”→紧急消息,系统即将崩溃或不稳定 pr_emerg
- “1” → 发生了不好的事情,必须立即采取行动 pr_alert
- “2” → 发生严重情况,例如严重的硬件/软件故障 pr_crit
- “3” → 错误条件,驱动程序经常使用它来指示硬件问题 pr_err
- “4”→ 警告,本身并不严重,但可能表明存在问题 pr_warning
- “5” → 没什么严重的,但值得注意的是。通常用于报告安全事件。公关通知
- “6” → 信息性消息,例如驱动程序初始化时的启动信息 pr_info
- "7" → 调试消息 pr_debug, pr_devel(如果定义了 DEBUG)
- KERN_DEFAULT "d" 默认内核日志级别
- KERN_CONT "" "续" 日志打印输出行(仅在没有封闭的行之后完成)