2014-01-10 1 views
3

У меня есть ниже простой конфигурации для log4j2, который просто войти сообщение утешать стандартный вывод и файл:Config log4j2 с JSON

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration> 
    <Appenders> 
     <RandomAccessFile name="FILE" fileName="app.log"> 
      <PatternLayout> 
       <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> 
      </PatternLayout> 
     </RandomAccessFile> 
     <Console name="STDOUT" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%m%n" /> 
     </Console> 
    </Appenders> 
    <Loggers> 
     <Root level="trace"> 
      <AppenderRef ref="FILE" /> 
      <AppenderRef ref="STDOUT" /> 
     </Root> 
    </Loggers> 
</Configuration> 

Он работает нормально, но если я изменяю JSON конфигурации, если не работает , если кто-нибудь знает?

{ "configuration": 
{ 
    "appenders": { 
     "RandomAccessFile": { "name": "FILE", "fileName": "app.log", 
      "PatternLayout": { "pattern": "%d %p %c{1.} [%t] %m%n" } 
     }, 
     "Console": { "name": "STDOUT", 
      "PatternLayout": { "pattern": "%m%n" } 
     } 
    }, 
    "loggers": { 
     "root": { "level": "trace", 
      "AppenderRef": { "ref": "STDOUT" }, 
      "AppenderRef": { "ref": "FILE" } 
     } 
    } 
} 
} 

ответ

0

Возможно, вы обнаружили ошибку. Не могли бы вы отправить билет Jira в трекер log4j2?

4

log4j2 JSON (или JSON по этому вопросу) не допускает две записи «AppenderRef» существовать, так что вы должны использовать конфиг больше как следующий

{ "configuration": 
{ 
    "appenders": { 
     "RandomAccessFile": { "name": "FILE", "fileName": "app.log", 
      "PatternLayout": { "pattern": "%d %p %c{1.} [%t] %m%n" } 
     }, 
     "Console": { "name": "STDOUT", 
      "PatternLayout": { "pattern": "%m%n" } 
     } 
    }, 
    "loggers": { 
     "root": { "level": "trace", 
      "AppenderRef": [ 
       { "ref": "STDOUT" }, 
       { "ref": "FILE" } 
      ] 
     } 
    } 
} 
} 

Вы также можете использовать «Appender -ref 'вместо AppenderRef