zoukankan      html  css  js  c++  java
  • KERN_EMERG是为了控制内核log输出级别

    static int __init hello_init(void)
    {
        printk(KERN_EMERG "[ KERN_EMERG ] Hello Module Init
    ");
        printk( "[ default ] Hello Module Init
    ");
        return 0;
    }

    KERN_EMERG是为了控制内核log输出级别,必须添加。

    使用printk时,Linux内核根据日志级别,可能把消息打印到当前控制台上,这个控制台是一个字符设备。这些消息从终端输出的前提是日志输出级别小于console_loglevel。日志级别有八个:0-7(越小级别越高)

    #define KERN_EMERG    KERN_SOH "0"    /* system is unusable                通常是系统崩溃前的信息 */
    #define KERN_ALERT    KERN_SOH "1"    /* action must be taken immediately  需要立即处理的消息 */
    #define KERN_CRIT    KERN_SOH "2"    /* critical conditions 严重情况 */
    #define KERN_ERR    KERN_SOH "3"    /* error conditions     错误情况 */
    #define KERN_WARNING    KERN_SOH "4"    /* warning conditions 有问题的情况 */
    #define KERN_NOTICE    KERN_SOH "5"    /* normal but significant condition 注意信息 */
    #define KERN_INFO    KERN_SOH "6"    /* informational 普通消息 */
    #define KERN_DEBUG    KERN_SOH "7"    /* debug-level messages 调试信息 */

    查看控制台级别

    >cat /proc/sys/kernel/printk
             4    4    1    7

    其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息

    分别对应控制台日志级别、默认的消息日志级别、最低的控制台日志级别和默认的控制台日志级别。

  • 相关阅读:
    王道考研复习-操作系统-进程管理(二)
    王道考研复习-操作系统-计算机系统概述(一)
    Understanding Undefined Behavior
    iOS开发需要掌握的命令
    LLDB命令速查
    Flutter简介
    poj 2115 C Looooops 扩展欧几里得算法
    poj 2635 The Embarrassed Cryptographer ??/Java??(???)
    poj 3292 Semi-prime H-numbers 筛素数(简单题)
    poj 1019 Number Sequence 数学
  • 原文地址:https://www.cnblogs.com/Rainingday/p/14289726.html
Copyright © 2011-2022 走看看