Spring boot 存在Docker问题的JSON格式日志的Logback配置
我有一个带有Logback配置的Spring引导应用程序,以便以JSON格式(控制台和文件appender)创建日志。 当我在本地运行我的应用程序(Sprint工具套件)时,我可以正确地看到JSON日志,但是当我为我的应用程序创建一个Docker容器并尝试运行它时,控制台日志是“标准”格式,而不是JSON格式 我需要JSON格式,以便在ELK堆栈中读取这些日志Spring boot 存在Docker问题的JSON格式日志的Logback配置,spring-boot,docker,logstash,logback,Spring Boot,Docker,Logstash,Logback,我有一个带有Logback配置的Spring引导应用程序,以便以JSON格式(控制台和文件appender)创建日志。 当我在本地运行我的应用程序(Sprint工具套件)时,我可以正确地看到JSON日志,但是当我为我的应用程序创建一个Docker容器并尝试运行它时,控制台日志是“标准”格式,而不是JSON格式 我需要JSON格式,以便在ELK堆栈中读取这些日志 <?xml version="1.0" encoding="UTF-8"?> <
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property resource="application.properties" />
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%cyan(%d{ISO8601}) %magenta(%-5level) [%green(%t)] %yellow(%C{1.}): %msg%n%throwable
</Pattern>
</layout>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"customer":"${log.config.customer}", "app":"${log.config.appname}", "environment":"${log.config.env}"}</customFields>
</encoder>
</appender>
<appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${log.config.appender.file.level}</level>
</filter>
<file>${log.config.appender.file.path}</file>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"customer":"${log.config.customer}", "app":"${log.config.appname}", "environment":"${log.config.env}"}</customFields>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.config.appender.file.path}.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="Console" />
<appender-ref ref="File" />
</root>
</configuration>
%青色(%d{ISO8601})%洋红(%-5级)[%绿色(%t)]%黄色(%C{1}):%msg%n%可丢弃
{“客户”:“${log.config.customer}”,“应用”:“${log.config.appname}”,“环境”:“${log.config.env}”
${log.config.appender.file.level}
${log.config.appender.file.path}
{“客户”:“${log.config.customer}”,“应用”:“${log.config.appname}”,“环境”:“${log.config.env}”
${log.config.appender.file.path}。%d{yyyy-MM-dd}
30
编辑:我注意到,如果我使用Maven目标文件夹中的java-jar app.jar
运行我的应用程序,那么日志不是JSON格式的
我做错了什么?
谢谢
已解决:问题很简单,我的日志文件名为“Logback spring.xml
”(L大写),在这种情况下,STS正确显示日志,但在您使用“java-jar app.jar
”运行应用程序时却无法显示日志,因此我将该文件重命名为Logback spring.xml
(L小写)一切正常