1.内核日志输出等级修改
通过读写/proc/sys/kernel/printk文件可读取和修改控制台的日志级别
内核通过printk() 函数输出的信息具有日志级别,通过在printk() 输出的字符串前加一个带尖括号的整数来控制等级,例如:
1)日志输出
//日志级别为6的消息
printk("<6>Hello, world!\n");
日志级别定义,在 linux/kernel.h (0~7)
#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 */
2)日志等级控制
在系统下通过读写/proc/sys/kernel/printk文件,来读取控制台的日志信息
[root@localhost ~]# cat /proc/sys/kernel/printk
4 4 1 7
说明:以上的格式的四个数字对应下面的格式
控制台日志 消息日志 最低的控制台日志 缺省的控制台
DEFAULT_CONSOLE_LOGLEVEL DEFAULT_MESSAGE_LOGLEVEL MINIMUM_CONSOLE_LOGLEVEL DEFAULT_CONSOLE_LOGLEVEL
解析:
(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
2 2 1 2
[root@localhost ~]# echo 6 > /proc/sys/kernel/printk
[root@localhost ~]# cat /proc/sys/kernel/printk
6 2 1 2
[root@localhost ~]# echo 4 6 1 7 > /proc/sys/kernel/printk
[root@localhost ~]# cat /proc/sys/kernel/printk
4 6 1 7
2737

被折叠的 条评论
为什么被折叠?



