2016-05-12 133 views
1

我想重定向日志的输出JSON格式,所以,我有一个Json配置log4j2。我知道我应该使用JsonLayout,但我没有找到任何方法将它放在我的配置上。这是我的log4j2.json:添加JsonLayout到log4j2 json配置

{ 
    "Configuration": { 
    "status": "info", 
    "Appenders": { 
     "Console": { 
     "name": "Console", 
     "target": "SYSTEM_OUT", 
     "PatternLayout": { 
      "Pattern": "%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} [%t] %-5level [%logger{1.}] - %msg%n" 
     } 
     } 
    }, 
    "Loggers": { 
     "Root": { 
     "level": "info", 
     "AppenderRef": [ 
      { 
      "ref": "Console" 
      } 
     ] 
     } 
    } 
    } 
} 

你能帮我把这个添加到我的配置文件吗?

+0

我有点困惑。为什么不能用JsonLayout配置FileAppender? – rgoers

+0

我该怎么做? @rgoers –

回答

0

这里是一个例子。您应该查看http://logging.apache.org/log4j/2.x/manual/layouts.html#JSONLayout以了解您可以使用的选项。另外,配置文件不一定要用JSON来使用JsonLayout。它可以是XML,YAML或属性文件。

{ 
    "Configuration": { 
    "status": "info", 
    "Appenders": { 
     "Console": { 
     "name": "Console", 
     "target": "SYSTEM_OUT", 
     "PatternLayout": { 
      "Pattern": "%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} [%t] %-5level [%logger{1.}] - %msg%n" 
     } 
     }, 
     "File" : { 
     "name" : "file", 
     "fileName" : "${env:logdir}/app.log", 
     "JsonLayout" : { 
      "complete" : "true" 
     } 
     } 
    }, 
    "Loggers": { 
     "Root": { 
     "level": "info", 
     "AppenderRef": [ 
      { 
      "ref": "Console" 
      }, 
      { 
      "ref" : "File" 
      } 
     ] 
     } 
    } 
    } 
} 
1

这里的东西的工作例如,您只需JSONLayout这是Layout对JSON事件记录的IMPL。

{ 
    "configuration": { 
    "name": "log-enrichment", 
    "appenders": { 
     "RollingFile": { 
     "name": "rollingFile", 
     "fileName": "enrichment.log", 
     "filePattern": "%d{MM-dd-yy-HH-mm-ss}-%i.log", 
     "JSONLayout": { 
      "complete": false, 
      "compact": false, 
      "eventEol": true 
     }, 
     "SizeBasedTriggeringPolicy": { 
      "size": "100 MB" 
     }, 
     "DefaultRolloverStrategy": { 
      "max": "5" 
     } 
     } 
    }, 
    "loggers": { 
     "root": { 
     "level": "DEBUG", 
     "appender-ref": { 
      "ref": "rollingFile" 
     } 
     } 
    } 
    } 
}