顾乔芝士网

持续更新的前后端开发技术栈

Log4j 日志级别详解(log4j日志记录)

在本篇Log4j2教程中,学习有关log4j日志级别的知识。日志级别用于控制添加到日志语句中的信息量和类型。

1. Logging Levels

Log4j2支持以下日志级别:

  1. TRACE
    最低级别。用于跟踪程序的执行流。只用于调试目的。生成的日志量会非常大。
  2. DEBUG
    用于记录调试信息。日志量会很大。
  3. INFO
    默认级别。用于记录程序一般运行信息。这是你想在每个环境下记录的最低级别。
  4. WARN
    用于记录潜在问题信息。这些消息指示软件正在按预期工作,但可能会发生问题。
  5. ERROR
    用于记录错误事件。这些事件会对系统的操作产生负面影响。
  6. FATAL
    最高级别。用于记录致命错误事件。这些事件将导致应用程序崩溃。
  7. OFF
    用于关闭日志记录。所有日志记录请求都会被忽略。

2. 设置日志级别

2.1 在log4j2.properties中设置日志级别

给定的示例设置DEBUG日志级别为root记录器

rootLogger.level = debug

appender.console.type = Console  
appender.console.name = consoleLogger
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n  

2.2 在log4j2.xml中设置日志级别

<Configuration status="warn">   
    <Appenders>  
        <!-- Console appender configuration -->  
        <Console name="console" target="SYSTEM_OUT">  
            <PatternLayout  
                pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />  
        </Console>  
    </Appenders>  
    <Loggers>   
        <!-- Root logger referring to console appender -->
        <Root level="DEBUG" additivity="false">  
            <AppenderRef ref="console" />  
        </Root>  
    </Loggers>
</Configuration>

3. 日志级别的工作原理

在log4j中,日志级别根据分配给它们的整数值排序,如下所示:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF

如果我们将日志级别设置为'X',则级别 >= X的任何日志请求都将记录在日志文件中。

例如,如果我们将日志级别设置为`INFO`,则应用程序将记录`INFO`、`WARN`、`ERROR`和`FATAL`范围内的消息。所有DEBUG和TRACE日志不会添加到日志文件中。

4. Log4j日志级别示例

Java程序演示日志级别的使用。该示例将日志级别设置为INFO,然后在不同的级别记录多个消息。
根据我们的讨论,该程序将打印除DEBUG和TRACE之外的所有日志消息。

java
import org.apache.log4j.*;  

public class LogLevelExample  
{  
   private static Logger logger = Logger.getLogger(LogLevelExample.class);  

   public static void main(String[] args) {  
      logger.setLevel(Level.INFO);  

      logger.trace("Trace Message!");  
      logger.debug("Debug Message!");   
      logger.info("Info Message!");  
      logger.warn("Warn Message!");  
      logger.error("Error Message!");  
      logger.fatal("Fatal Message!");  
   }  
} 

程序输出:

Info Message!  
Warn Message! 
Error Message!
Fatal Message!
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言