Logspout多行无法按预期工作

时间:2018-11-27 05:32:51

标签: docker elasticsearch logging elastic-stack

我正在尝试将logspout合并到我的环境中,因为我正在docker compose文件中使用以下设置。

logspout:
  image: gliderlabs/logspout:v3.2.6
  environment:
    SYSLOG_FORMAT: rfc3164
    MULTILINE_MATCH: last
    DEBUG: 1
  command: 'multiline+syslog://logstash:5020?filter.name=core-server'
  volumes:
    - '/var/run/docker.sock:/tmp/docker.sock'
  networks:
   - elk
  depends_on:
    - logstash

在我的Java应用程序中,我试图使用logger记录以下数据

Class MyClass{
  private void myFunc(){
    LOG.info("\n one \n two \n three \n");
  }
}

在调试器中,我看到以下日志

2018-11-26 13:45:42 [xyz] INFO 
            MyClass::myFunc: 
one
two
three

当我进入日志存储控制台时,此消息分为两条消息,而不是一条日志消息,

1. <14>2018-11-26T13:45:42Z ip-x-y-w-z core-server[100]: 2018-11-26 
13:45:42 [xyz] INFO\n\t\t\t\tMyClass::myFunc:\n
2. <14>2018-11-26T13:45:42Z ip-x-y-w-z core-server[100]: one \n two \n 
three \n 

我希望在logstash上收到以下消息,而不是上面的消息

1. <14>2018-11-26T13:45:42Z ip-x-y-w-z core-server[100]: 2018-11-26 
13:45:42 [xyz] INFO\n\t\t\t\tMyClass::myFunc:\n one \n two \n three \n 

我确实使用了logspout的多行适配器,以便我的多行消息确实按原样传递给logstash,而不是我的消息从第二个“ \ n”处断开。

我希望我的完整消息应该传递给logstash,而不用换行符。

0 个答案:

没有答案