【Linux】修改dmesg输出的日志级别

修改dmesg输出的级别

要修改 /proc/sys/kernel/printk 文件的内容以更改 dmesg 输出的级别,可以通过命令行进行操作。这个文件包含四个值,分别代表内核消息的不同级别。通过修改这些值,可以控制内核消息的输出级别。

/proc/sys/kernel/printk 文件中的四个值分别代表:

  1. console_loglevel:控制在控制台上显示的最低消息级别。
  2. default_message_loglevel:新消息的默认级别。
  3. minimum_console_loglevel:控制台上显示的最小消息级别。
  4. default_console_loglevel:控制台上显示的默认消息级别。

以下是如何查看和修改这些值的步骤:

查看当前 printk 设置
cat /proc/sys/kernel/printk

这会输出四个值,例如:

7 4 1 7
修改 printk 设置

要修改这些值,可以使用 echo 命令。假设我们要将 console_loglevel 修改为 4(默认显示警告级别及以上的消息),可以执行以下命令:

echo "4 4 1 7" > /proc/sys/kernel/printk
逐个值解释及示例

假设你想要以下配置:

  • console_loglevel 设置为 3 (只显示错误信息)
  • default_message_loglevel 设置为 4 (新消息的默认级别为警告)
  • minimum_console_loglevel 保持为 1 (紧急消息)
  • default_console_loglevel 设置为 4 (警告级别)

你可以执行:

echo "3 4 1 4" > /proc/sys/kernel/printk
永久保存设置

这些更改在系统重启后将恢复默认。要使其永久生效,可以将修改添加到 /etc/sysctl.conf 文件中:

编辑 /etc/sysctl.conf 文件:

sudo nano /etc/sysctl.conf

添加以下行:

kernel.printk = 3 4 1 4

保存并关闭文件。然后执行以下命令以应用更改:

sudo sysctl -p

这样可以确保在每次系统启动时都应用这些设置。

临时会话生效

dmesg -n 命令用于设置当前会话中内核消息的日志级别(console_loglevel)。这会影响通过 dmesg 命令查看的内核消息的详细程度。

dmesg -n 用法

dmesg -n 命令的格式如下:

dmesg -n <level>

其中 <level> 是一个数字,表示消息的日志级别。常用的日志级别如下:

  • 0 (KERN_EMERG): 紧急情况,系统不可用
  • 1 (KERN_ALERT): 需要立即采取措施
  • 2 (KERN_CRIT): 严重情况
  • 3 (KERN_ERR): 错误
  • 4 (KERN_WARNING): 警告
  • 5 (KERN_NOTICE): 正常但需要注意的情况
  • 6 (KERN_INFO): 信息
  • 7 (KERN_DEBUG): 调试消息

例如,要将内核消息级别设置为仅显示错误及以上的消息,可以使用:

dmesg -n 3
关系与区别

dmesg -n 命令实际修改的是 /proc/sys/kernel/printk 文件中的 console_loglevel 值。使用 dmesg -n 修改日志级别相当于使用 echo 命令修改 /proc/sys/kernel/printk 中的第一个值。例如:

dmesg -n 3

相当于:

echo "3 4 1 7" > /proc/sys/kernel/printk

假设其他值保持不变。

总结
  • dmesg -n 命令仅影响当前会话内核消息的日志级别。
  • 修改 /proc/sys/kernel/printk 文件可以通过 echo 命令直接进行,影响立即生效。
  • 要使这些设置永久生效,应将其写入 /etc/sysctl.conf 文件并使用 sysctl -p 应用。

通过这两种方法,可以灵活地控制系统内核消息的输出级别,以适应不同的调试和监控需求。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值