Linux内核日志级别
1 内核日志级别
内核通过 printk 输出日志,其级别由 /proc/sys/kernel/printk 控制。直接读取该文件即可:
cat /proc/sys/kernel/printk
输出示例如下:
4 4 1 7
四个数字分别表示:
-
当前控制台日志级别(Console Log Level):只有优先级高于此值的消息才会输出到控制台。
-
默认消息日志级别:未明确指定级别的printk消息使用的默认级别。
-
最小允许的日志级别:允许设置的最低控制台日志级别
-
启动时的默认控制台日志级别:系统启动时的初始值。
printk 的日志级别数值越小,优先级越高。这是 Linux 内核中 printk 日志级别的核心设计逻辑,数值范围从 0(最高紧急级别) 到 7(最低调试级别)。
| 数值 | 宏定义 | 说明 |
|---|---|---|
| 0 | KERN_EMERG |
紧急(Emergency):系统不可用,需要立即处理(如内核崩溃)。 |
| 1 | KERN_ALERT |
警报(Alert):必须立即采取行动(如硬件故障)。 |
| 2 | KERN_CRIT |
严重(Critical):严重错误(如磁盘故障导致数据丢失)。 |
| 3 | KERN_ERR |
错误(Error):运行时错误(如驱动加载失败)。 |
| 4 | KERN_WARNING |
警告(Warning):非关键问题(如内存不足)。 |
| 5 | KERN_NOTICE |
通知(Notice):正常但重要的事件(如硬件热插拔)。 |
| 6 | KERN_INFO |
信息(Info):系统状态信息(如设备初始化完成)。 |
| 7 | KERN_DEBUG |
调试(Debug):调试信息(仅在开发或排查问题时启用)。 |
2 修改printk日志级别
在 Linux 内核中,printk 的默认日志级别是 KERN_WARNING(数值为 4)。当在代码中调用 printk 时未显式指定日志级别,内核会使用此默认值。可以通过以下方法调整printk的日志级别:
2.1 临时调整
# 将默认消息级别设为 6(KERN_INFO)
echo "4 6 1 7" > /proc/sys/kernel/printk
2.2 永久修改
编辑 /etc/sysctl.conf,添加:
kernel.printk = 4 6 1 7

浙公网安备 33010602011771号