将JsonLayout添加到log4j2 json config

时间:2016-05-12 21:34:08

标签: java json logging logback log4j2

我试图以JSON格式重定向日志输出,因此,我有一个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"
          }
        ]
      }
    }
  }
}

你能帮我把它添加到我的配置文件中吗?

2 个答案:

答案 0 :(得分:1)

这是一个有用的例子,你只需要JSONLayout这是json事件记录的Layout的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"
        }
      }
    }
  }
}

答案 1 :(得分: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"
          }
        ]
      }
    }
  }
}