【问题标题】:log4j logging file exclude logs messageslog4j 日志文件排除日志消息
【发布时间】:2019-02-04 17:36:19
【问题描述】:

我正在使用 BOM Finchley.RC2 构建 Spring Boot 应用程序版本 2.0.2.RELEASE 并尝试使用 log4j2.xml 将日志写入文件。问题是我只想记录我的应用程序消息,例如:

log.error("this is error");
log.info("this is info");

但日志文件显示其他日志以及 Spring 日志等如下:

29-08-2018 18:01:45,023 [INFO ] [] [main] - this is info
29-08-2018 18:01:45,492 [INFO ] [] [main] - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@b4711e2: startup date [Wed Aug 29 18:01:45 PKT 2018]; root of context hierarchy
29-08-2018 18:01:45,659 [INFO ] [] [main] - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
29-08-2018 18:01:45,687 [INFO ] [] [main] - Bean 'configurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$af5d2aa2] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

如何自定义我的 log4j2.xml 以仅实现我的应用程序日志记录以获取信息/调试/错误日志。 下面是我的 log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <RollingFile name="FileAppender" fileName="mylogFile.log" 
        append="true" filePattern="log-%d{MM-dd-yyyy}-%i.log">
      <PatternLayout>
        <pattern>%d{dd-MM-yyyy HH:mm:ss,SSS} [%-5p] [%X{X-B3-TraceId}] [%t] - %m%n</pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
      </Policies>
      <DefaultRolloverStrategy max="20"/>
    </RollingFile>
    <Console name="STDOUT" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{dd-MM-yyyy HH:mm:ss,SSS} [%-5p] [%X{X-B3-TraceId}] [%t] - %m%n"/>
    </Console>
    <File name="JSONAppender" fileName="\\tmp\\logFile.json.log" append="true">

    <JSONLayout complete="true" charset="UTF-8" compact="true" eventEol="true"/>

    </File>
  </Appenders>
  <Loggers>
    <Logger name="org.apache.logging.log4j.core.config.xml" level="info" >
      <AppenderRef ref="FileAppender"/>
    </Logger>
    <Logger name="guru.springframework.blog.log4j2json" level="debug">
      <AppenderRef ref="JSONAppender"/>
    </Logger>


    <Root level="info">
      <AppenderRef ref="STDOUT" />
      <AppenderRef ref="FileAppender"/>
      <AppenderRef ref="JSONAppender"/>
    </Root>
  </Loggers>
</Configuration>`

任何帮助请我的配置有什么问题? 使用 Spring 1.5.9 version 它工作正常,但是当我升级到 2.0.2.RELEASE 时,日志记录到文件不起作用。

【问题讨论】:

    标签: java logging log4j2 spring-logback


    【解决方案1】:

    为了避免来自外部库的INFO,您需要将根日志级别从INFO 调整为WARNERROR

    此外,您必须为要从中写入日志消息的包/类创建显式记录器。

    <Logger name="com.my.app" level="info">
      <AppenderRef="STDOUT" />
      ..
    </Logger>
    

    我还建议您将记录器 (%c) 添加到日志模式中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 2011-03-20
      • 2017-05-31
      相关资源
      最近更新 更多