繁体   English   中英

调试日志未在控制台中打印并且日志文件未生成

[英]debug logs is not printing in console and log file is not generating

嗨,我是 Log4j 的新手,帮我解决这个问题。

我的应用程序的一个模块以前使用 spring 引导默认常用记录器,但现在我正在为这个模块实现 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>

我的 CLass:

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

LOGGER.debug("DEBUG LOGS");

基本上

level = ERROR

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

级别的文档:

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

 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 时,可以保证捕获所有级别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM