温馨提示×

dmesg日志级别如何设置

小樊
60
2025-08-21 19:45:15
栏目: 编程语言

dmesg(display message或者driver message)是Linux下用于显示内核启动信息和运行时状态信息的命令。dmesg日志级别可以通过以下几种方式进行设置:

1. 使用dmesg命令的-l选项

你可以使用dmesg -l命令来查看当前的日志级别。例如:

dmesg -l

输出示例:

[    0.000000] Linux version 5.4.0-42-generic (buildd@lgw01-amd64-039) (gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)) #46~18.04.1-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-42-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
...

2. 修改内核参数

你可以在启动时通过修改GRUB配置文件来设置日志级别。

  1. 打开GRUB配置文件:

    sudo nano /etc/default/grub
    
  2. 找到GRUB_CMDLINE_LINUX_DEFAULT行,并添加或修改日志级别参数。例如,设置为quiet(默认)或verbose

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vt.handoff=7 loglevel=8"
    
  3. 保存并退出编辑器,然后更新GRUB配置:

    sudo update-grub
    
  4. 重启系统以应用更改:

    sudo reboot
    

3. 使用sysctl命令

你也可以在运行时使用sysctl命令来临时更改日志级别。

  1. 查看当前的日志级别:

    sysctl kernel.printk
    
  2. 设置日志级别。例如,设置为8(最高级别):

    sudo sysctl -w kernel.printk="8 4 1 7"
    

    参数解释:

    • 第一个数字:当前控制台日志级别
    • 第二个数字:默认消息日志级别
    • 第三个数字:最小控制台日志级别
    • 第四个数字:默认控制台日志级别

4. 持久化设置

如果你希望更改在系统重启后仍然有效,可以将sysctl命令添加到/etc/sysctl.conf文件中:

echo "kernel.printk = 8 4 1 7" | sudo tee -a /etc/sysctl.conf

然后应用更改:

sudo sysctl -p

通过以上方法,你可以根据需要设置dmesg日志级别,以便更好地监控和调试系统状态。

0