【问题标题】:debug logs is not printing in console and log file is not generating调试日志未在控制台中打印并且日志文件未生成
【发布时间】:2021-05-13 07:13:33
【问题描述】:

您好,我是 Log4j 新手,请帮我解决这个问题。

我的应用程序的一个模块以前使用spring boot默认的通用记录器,但现在我正在为这个模块实现log4j

我面临的问题是,如果我添加带有调试日志的日志语​​句,它不会在控制台中打印并且日志文件没有生成。

POM.XML:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.6</version>
        </dependency>
<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.6</version>
        </dependency>

log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration strict="true" name="XMLConfig">
    <Appenders>
        <Appender type="Console" name="STDOUT">
            <Layout type="PatternLayout">
                 <Pattern>%d{[MM.dd.yyyy] | [HH:mm:ss]|}%level{FATAL=[FATAL],ERROR=[ERROR], WARN=[WARN], INFO=[INFO], DEBUG=[DEBUG],  TRACE=[TRACE]}|[%X{sessionID}]|[%F]|[%M]|[%L]|%m%throwable%n</Pattern>
            </Layout>
        </Appender>
     
      <RollingFile name="RollingFile" fileName="/data/storage/log/Test.log" filePattern="/data/storage/log/test.%d{yyyy-MM-dd}_%i.Logs.gz">
    
        
            <Layout type="PatternLayout">
                 <Pattern>%d{[MM.dd.yyyy] | [HH:mm:ss]|}%level{FATAL=[FATAL],ERROR=[ERROR], WARN=[WARN], INFO=[INFO], DEBUG=[DEBUG],  TRACE=[TRACE]}|[%X{sessionID}]|[%F]|[%M]|[%L]|%m%throwable%n</Pattern>
            </Layout>
            
        </RollingFile>       
    </Appenders>
    
    <Loggers>
        <logger name="com.test" additivity="false" level="ERROR">
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDOUT"/> 
        </logger>
        
        <Root level="ERROR">
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDOUT"/>
        </Root>
    </Loggers>
</Configuration>

我的班级:

Logger LOGGER = LogManager.getLogger(this.getClass().getName());

LOGGER.debug("DEBUG LOGS");

【问题讨论】:

    标签: java spring-boot log4j log4j2


    【解决方案1】:

    基本上

    level = ERROR

    表示只有级别为ERROR 或更高级别(更具体)的日志条目将由该记录器或过滤器处理。 DEBUG 是较低级别。将两个 Logger 的配置中的级别更改为 DEBUG(或 ALL)(或者,仅用于测试,请致电 LOGGER.error("now a test ERROR");

    Level 的文档:

    用于识别事件严重性的级别。级别按从最具体到最不具体的顺序排列:

    OFF (most specific, no logging)
    FATAL (most specific, little data)
    ERROR
    WARN
    INFO
    DEBUG
    TRACE (least specific, a lot of data)
    ALL (least specific, all data)
    

    通常,在过滤器或记录器上配置级别将导致该级别的日志记录事件以及更具体的事件通过过滤器。在日志配置中使用特殊级别 ALL 时,可以保证捕获所有级别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2018-11-28
      相关资源
      最近更新 更多