Logstash 如何添加字段(不显示日志级别)?

Logstash how can add feild(not show loglevel)?

我的代码是这样的,从其他项目copy过来的,但是不知道为什么在json里找不到loglevel字段,详细代码:

LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();

Logger logger = context.getLogger("ROOT");

if (enabled == null || enabled) {
  if (logger.getAppender(APPENDER_NAME) == null) {

    String destination = host + ":" + port;

    try {
      DestinationParser.parse(destination, AbstractLogstashTcpSocketAppender.DEFAULT_PORT);
    } catch (RuntimeException e) {
      throw new IllegalArgumentException("Invalid host and port : " + destination);
    }


    LogstashTcpSocketAppender appender = new LogstashTcpSocketAppender();
    appender.setContext(context);
    appender.addDestination(destination);
    appender.setName(APPENDER_NAME);

    LogstashEncoder encoder = new LogstashEncoder();

    encoder.setCustomFields("{\"application_name\":\"" + applicationName + "\"}");
    encoder.setContext(context);
    appender.setEncoder(encoder);

    appender.start();
    encoder.start();

    logger.addAppender(appender);
    logger.setLevel(Level.ALL);

https://github.com/Dreampie/docker-elk 使用 docker-compose up -d --build 启动 elk,但 logstash 结果不包含 loglevel,logstash 使用 codec:"json":

{
    "_index": "logstash-2016.10.10",
    "_type": "logs",
    "_id": "AVetGEgU-dbBmx39fbyl",
    "_score": null,
    "_source": {
    "message": "{\"@timestamp\":\"2016-10-10T13:33:24.998+08:00\",\"@version\":1,\"message\":\"Retrieving delivery for Consumer: tags=[{amq.ctag-qURSKFA3CagYtd7y9EDAFQ=springCloudBus.anonymous.QTc6psI8RbOJm5oNFurqHA}], channel=Cached Rabbit Channel: AMQChannel(amqp://acfun@192.168.60.201:5672/,1), conn: Proxy@8440641 Shared Rabbit Connection: SimpleConnection@62e8f5bf [delegate=amqp://acfun@192.168.60.201:5672/], acknowledgeMode=AUTO local queue size=0\",\"logger_name\":\"org.springframework.amqp.rabbit.listener.BlockingQueueConsumer\",\"thread_name\":\"springCloudBus.anonymous.QTc6psI8RbOJm5oNFurqHA-1\",\"level\":\"DEBUG\",\"level_value\":10000,\"LOG_LEVEL_PATTERN\":\"%5p\",\"level\":\"DEBUG\",\"application_name\":\"user-api-provider\"}",
    "@version": "1",
    "@timestamp": "2016-10-10T05:37:11.819Z",
    "host": "192.168.60.228",
    "port": 52196
    },
    "fields": {
    "@timestamp": [
    1476077831819
    ]
    },
    "sort": [
    1476077831819
    ]
}

是的,我知道了,codecjson 中没有得到 loglevel 字段和其他字段,json_lines 工作正常

codec => json_lines