Log4j2介绍和特性实例(五)--用户自定义日志等级

    xiaoxiao2022-07-05  203

     

          Log4j2介绍和特性实例(五)--用户自定义日志等级

     

    转载:https://blog.csdn.net/chenhaotong/article/details/50489596

    Log4j2支持用户自定义的日志等级,在代码或者配置文件中都可以进行新日志等级的定义。  1. 如果要在代码中定义新等级,可以使用 Level.forName() 方法:

    // This creates the "VERBOSE" level if it does not exist yet. final Level VERBOSE = Level.forName("VERBOSE", 550); final Logger logger = LogManager.getLogger(); logger.log(VERBOSE, "a verbose message"); // use the custom VERBOSE level // Create and use a new custom level "DIAG". logger.log(Level.forName("DIAG", 350), "a diagnostic message"); // Use (don't create) the "DIAG" custom level. // Only do this *after* the custom level is created! logger.log(Level.getLevel("DIAG"), "another diagnostic message");

    2. 如果要在配置文件中定义新等级,可以使用<CustomLevels>标签进行定义:

    <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <span style="white-space:pre"> </span><!-- Define custom levels before using them for filtering below. --> <CustomLevels> <CustomLevel name="DIAG" intLevel="350" /> <CustomLevel name="NOTICE" intLevel="450" /> <CustomLevel name="VERBOSE" intLevel="550" /> </CustomLevels> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d %-7level %logger{36} - %msg%n"/> </Console> <File name="MyFile" fileName="logs/app.log"> <PatternLayout pattern="%d %-7level %logger{36} - %msg%n"/> </File> </Appenders> <Loggers> <Root level="trace"> <!-- Only events at DIAG level or more specific are sent to the console. --> <AppenderRef ref="Console" level="diag" /> <AppenderRef ref="MyFile" level="trace" /> </Root> </Loggers> </Configuration>

    在Log4j2程序在解析配置文件后,会自动调用 Level.forName()创建新日志等级。

    3. 在日志等级中使用的数字(intLevel),是用来让系统知道新等级相对于系统自带的日志等级所在的位置。

    系统默认的日志等级如下:

    如果大家想深入研究,可以参考用户手册第17章的内容。

    下一篇将介绍配置文件不再默认路径时,如何加载配置文件。谢谢关注。  

    最新回复(0)