log4j файл журнала исключает сообщения журнала - PullRequest
0 голосов
/ 29 августа 2018

Я создаю версию приложения весенней загрузки 2.0.2.RELEASE с спецификацией Finchley.RC2 и пытаюсь записать журналы в файл, используя 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 запись в файл не работала.

1 Ответ

0 голосов
/ 30 августа 2018

Чтобы исключить INFO из внешних библиотек, вам нужно настроить уровень корневого журнала от INFO до WARN или ERROR.

Кроме того, вы должны создать явный регистратор для пакетов / классов, из которых вы хотите писать сообщения журнала.

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

Я также рекомендовал бы добавить регистратор (%c) в шаблон журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...