概述
目录
一、作用
二、背景介绍
1.日志等级
2.日志等级文件
3.设置日志信息等级
一、作用
通过读写 /proc/sys/kernel/printk 文件可读取和修改控制台的日志级别。如插入键鼠时弹出设备的输入输出msg信息等。
二、背景介绍
1.日志等级
内核通过 printk() 输出的信息具有日志级别,日志级别是通过在 printk() 输出的字符串前加一个带尖括号的整数来控制的,如 printk("<6>Hello, world!n"); 。内核中共提供了八种不同的日志级别,在 linux/kernel.h 中有相应的宏对应。
#define KERN_EMERG "<0>" /* systemis unusable */
#define KERN_ALERT "<1>" /* actionmust be taken immediately */
#define KERN_CRIT "<2>" /*critical conditions */
#define KERN_ERR "<3>" /* errorconditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normalbut significant */
#define KERN_INFO "<6>" /*informational */
#define KERN_DEBUG "<7>" /*debug-level messages */
未指定日志级别的 printk() 采用的默认级别是 DEFAULT_MESSAGE_LOGLEVEL ,这个宏在kernel/printk.c 中被定义为整数 4,即对应 KERN_WARNING 。
在宏定义中,数值越小,优先级越高,其紧急和严重程度就越高。
2.日志等级文件
在系统下通过读写 /proc/sys/kernel/printk 文件,来读取控制台的日志信息:
[root@localhost ~]# cat /proc/sys/kernel/printk
4 4 1 7
(1) 控制台日志级别:优先级高于该值的消息将被打印至控制台。
(2) 缺省的消息日志级别:将用该值来打印没有优先级的消息。
(3) 最低的控制台日志级别:控制台日志级别可能被设置的最小值。
(4) 缺省的控制台:控制台日志级别的缺省值。
这四个值是在 kernel/printk.c 中被定义的:
int console_printk[4] = {
DEFAULT_CONSOLE_LOGLEVEL, /* console_loglevel */
DEFAULT_MESSAGE_LOGLEVEL, /* default_message_loglevel */
MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */
DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */
};
3.设置日志信息等级
[root@localhost ~]# cat /proc/sys/kernel/printk
4 4 1 7
[root@localhost ~]# echo 8 > /proc/sys/kernel/printk
[root@localhost ~]# cat /proc/sys/kernel/printk
8 4 1 7
[root@localhost ~]# echo 8 1 1 1 > /proc/sys/kernel/printk
[root@localhost ~]# cat /proc/sys/kernel/printk
8 1 1 1
实例:
转自:https://cloud.tencent.com/developer/article/1555243
最后
以上就是大方微笑为你收集整理的日志输出等级:/proc/sys/kernel/printk的全部内容,希望文章能够帮你解决日志输出等级:/proc/sys/kernel/printk所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复