gpt4 book ai didi

linux - 控制台日志级别和默认日志级别之间的区别

转载 作者:太空宇宙 更新时间:2023-11-04 11:09:47 27 4
gpt4 key购买 nike

我读过模块编程,

如果日志级别是

  less than console log level will get displayed and 
higher than will be mentioned in log files ,

如果我不在 printk 语句中指定任何日志级别,那么将采用默认日志级别

我刚刚看到默认和控制台日志级别

cat /proc/sys/kernel/printk

结果是

4 4 1 7

这里默认和控制台是一样的。

我不明白为什么要创建默认日志级别。我们要在任何地方使用默认日志级别吗?

控制台日志级别和默认日志级别之间的确切区别是什么。

我是模块编程的新手。

最佳答案

正如我们所知,我们有不同的内核级日志:

#define KERN_EMERG "<0>" /* system is unusable*/
#define KERN_ALERT "<1>" /* action must be taken immediately*/
#define KERN_CRIT "<2>" /* critical conditions*/
#define KERN_ERR "<3>" /* error conditions*/
#define KERN_WARNING "<4>" /* warning conditions*/
#define KERN_NOTICE "<5>" /* normal but significant condition*/
#define KERN_INFO "<6>" /* informational*/
#define KERN_DEBUG "<7>" /* debug-level messages*/

好吧,我们分开讨论:

Console log level 用于设置可以在控制台窗口上显示的日志级别 with Log levels(printk) < Console log level (4 考虑到你的情况)。

即,它将使用 0、1、2 和 3 的日志级别使用 printk 打印内核消息。其余 4 到 7 将记录在内核维护的循环缓冲区中 - 可以看到发出 "dmesg" .

现在如果我们继续 Default log level:

每当你在没有任何日志级别信息的情况下使用 printk 时,例如:

printk("Insmod my first driver\n");//此日志级别将设置为“kern_warning”(默认日志级别为 4)。

所以不同之处在于控制台日志用于决定需要在控制台上打印什么,默认日志级别用于如果printk未提及默认采用的日志级别。在内核模块编程期间。

关于linux - 控制台日志级别和默认日志级别之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23724720/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com