Linux如何更改内核打印等级
时间: 2023-11-07 17:13:58 浏览: 298
在Linux系统中,可以通过修改/sys/module/kernel/parameters/printk值来更改内核打印等级。
打开终端,以root用户身份登录,输入以下命令:
```
echo "n" > /proc/sys/kernel/printk
```
其中,n代表打印等级,取值范围为0~7,等级越高,打印信息越详细。
例如,要将打印等级设置为3,可以输入以下命令:
```
echo "3" > /proc/sys/kernel/printk
```
如果想要永久修改打印等级,可以修改/etc/sysctl.conf文件,在文件末尾添加以下内容:
```
kernel.printk = n n n n
```
其中,n代表打印等级,取值范围为0~7,依次表示console_loglevel,default_message_loglevel,minimum_console_loglevel,default_console_loglevel。
修改完成后,保存并关闭文件,然后执行以下命令使修改生效:
```
sysctl -p
```
相关问题
嵌入式Linux开启关闭内核打印信息
在嵌入式 Linux 中,可以通过修改内核配置来开启或关闭内核打印信息。
如果使用的是 Buildroot 等工具构建 rootfs 和内核,可以在构建时选择配置 `BR2_ENABLE_DEBUG` 和 `BR2_ENABLE_DEBUG_LL` 选项来开启或关闭内核打印信息。
如果是手动编译内核,则可以在 `.config` 文件中配置以下选项:
```
CONFIG_PRINTK=y
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
```
其中,`CONFIG_PRINTK` 选项为打印信息总开关,`CONFIG_MESSAGE_LOGLEVEL_DEFAULT` 则为打印信息的等级,默认为 4(警告级别)。
要关闭内核打印信息,可以将 `CONFIG_PRINTK` 的值改为 `n`,或者将 `CONFIG_MESSAGE_LOGLEVEL_DEFAULT` 的值改为较高的等级,例如 7(不打印信息)。
修改完成后,重新编译内核即可生效。
printk打印等级
在 Linux 内核中,有多种不同的 printk() 打印等级(log level)可用于在日志中标识不同类型的消息,每个打印等级都有一个与之关联的数字值。这些打印等级及其对应的数字值如下:
- KERN_EMERG (0): 紧急情况,例如系统崩溃
- KERN_ALERT (1): 需要立即采取行动,例如硬件故障
- KERN_CRIT (2): 严重错误,可能导致系统故障
- KERN_ERR (3): 错误消息,但不会导致系统崩溃
- KERN_WARNING (4): 警告消息,例如硬件故障可能导致错误
- KERN_NOTICE (5): 通知消息,例如网络连接的建立和断开
- KERN_INFO (6): 信息消息,例如模块加载和卸载
- KERN_DEBUG (7): 调试消息,仅用于调试目的
在使用 printk() 函数时,可以通过在消息字符串前加上打印等级的前缀来指定消息的打印等级。例如,使用 KERN_ERR 打印等级打印一个错误消息可以这样做:
```
printk(KERN_ERR "Error message\n");
```
需要注意的是,内核可以通过设置日志级别(log level)来控制哪些类型的消息将被打印。只有打印等级大于或等于当前日志级别的消息才会被打印出来。可以通过 /proc/sys/kernel/printk 文件来设置日志级别。例如,将日志级别设置为 3 将只打印错误消息和更严重的消息。
阅读全文