发布于2026-07-03 阅读(0)
扫一扫,手机访问
在Linux系统运维和调试中,dmesg这个命令大家应该都不陌生——它主要负责显示内核环缓冲区里的消息,硬件状态、驱动加载、内核模块的各种信息都会通过它呈现在你面前。不过有一点需要先搞清楚:dmesg本身只管“读”和“显示”,并不直接设置日志级别,真正控制日志输出优先级的是内核参数printk。

那么,printk到底是怎么工作的?它定义了一套从0到7的日志级别,数字越小优先级越高,具体如下:
要查看当前系统中printk的配置,只需执行:
cat /proc/sys/kernel/printk
输出结果会是类似这样的四个数字:
7 4 1 7
这四个数字依次代表:控制台日志级别(只有优先级高于此值的消息才会显示在控制台)、默认消息日志级别、最小控制台日志级别、以及默认控制台日志级别。举个例子,上面这个输出就表示:当前控制台只显示Warning(4)及以上级别的消息,默认消息级别为Debug(7),最小控制台级别为Alert(1),默认控制台级别为Debug(7)。
如果需要临时调整日志级别,可以用sysctl命令,比如:
sudo sysctl -w kernel.printk="4 4 1 7"
这样就把所有相关的日志级别统一设成了Warning(4)。不过需要注意,这种改动重启后就会失效。如果想要永久生效,就需要编辑/etc/sysctl.conf文件,添加或修改这样一行:
kernel.printk = 4 4 1 7
然后运行sudo sysctl -p让配置立即生效。
最后再总结一下:dmesg是查看内核消息的利器,但它不负责设置日志级别;真正控制日志输出行为的是printk参数。通过调整/proc/sys/kernel/printk或/etc/sysctl.conf,你就能灵活地决定哪些级别的消息该出现在控制台,哪些该被静默处理。
上一篇:dmesg中硬件故障如何识别
下一篇:怎样分析dmesg中的网络问题
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8