kernel日志
查看当前系统日志调试级别
sysctl kernel.printk
kernel.printk = 4 4 1 7
4:控制台日志级别,决定在控制台上显示的日志级别,只有达到或者高于该级别得到日志才会在控制台上显示
4:默认日志级别,内核在启动时设置的初始日志级别,它决定了在没有显式设置printk级别时(没给出控制级别设置),默认的日志记录级别。
1:最小日志级别,kernel允许记录的最低级的日志,只有达到或高于该级别的日志才会被记录
7:最大日志级别,kernel允许记录的最高级别的日志,只有达到或低于该级别的日志才会被记录。
日志记录、控制台输出和调试级别的关系
内核调试级别是指用于控制内核调试信息输出的级别。常见的内核调试级别包括:
KERN_EMERG:紧急级别,表示系统无法继续运行的严重错误。
KERN_ALERT:警报级别,表示需要立即采取行动的错误。
KERN_CRIT:临界级别,表示临界错误,可能导致系统不稳定或无法正常工作。
KERN_ERR:错误级别,表示一般错误,但不会导致系统崩溃。
KERN_WARNING:警告级别,表示可能会导致问题的警告信息。
KERN_NOTICE:注意级别,表示一般性的重要信息。
KERN_INFO:信息级别,表示一般性的信息。
KERN_DEBUG:调试级别,用于调试目的的详细信息。
这些级别按照严重程度递增,级别越高表示问题越严重。
在内核中,可以使用这些级别来控制调试信息的输出。
假设控制台输出级别设置为INFO,最大日志级别设置为WARNING,最小日志级别设置为DEBUG。
DEBUG级别的日志:由于最小日志级别是DEBUG,所以所有DEBUG级别的日志都会被记录,但只有达到或高于INFO级别的日志才会在控制台上显示。
INFO级别的日志:INFO级别的日志会被记录,也会在控制台上显示。
WARNING级别的日志:由于最大日志级别是WARNING,所以只有达到或低于WARNING级别的日志才会被记录和显示在控制台上。
ERROR级别的日志:ERROR级别的日志会被记录,但不会显示在控制台上,因为它高于控制台输出级别INFO。
综上所述,控制台输出级别和最大日志级别最小日志级别之间的关系是,控制台输出级别决定了哪些级别的日志会在控制台上显示,而最大日志级别和最小日志级别共同决定了哪些级别的日志会被记录。
dmesg信息、控制台输出信息、printk级别的关系
1. dmesg信息:dmesg是一个命令,用于显示内核环缓冲区的内容,其中包括内核启动过程中的各种信息、错误和警告。dmesg命令可以查看内核在运行时输出的日志信息。
2. 控制台输出信息:控制台输出信息是指内核将日志信息输出到系统的控制台(如终端窗口)上。这些信息可以直接在控制台上查看,通常用于调试和故障排除。
3. printk输出:printk是内核中用于输出日志信息的函数。printk函数接受一个日志级别参数,用于指定输出的日志级别。常见的日志级别包括DEBUG、INFO、WARNING、ERROR等。
总结:
1. 控制台输出信息是通过printk函数将日志信息输出到控制台上的。
2. printk级别决定了哪些日志信息会被输出到控制台。只有达到或高于设置的printk级别的日志信息才会被输出到控制台。
3. dmesg命令可以查看内核环缓冲区中的所有日志信息,包括控制台输出的日志信息。
综上所述,printk级别控制了哪些日志信息会被输出到控制台,而dmesg命令可以查看所有的内核日志信息,包括控制台输出的日志信息。