我正在尝试将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,而不用换行符。