Java 在已部署的Spring Boot应用程序中配置Logback Appender

Java 在已部署的Spring Boot应用程序中配置Logback Appender,java,spring,spring-boot,docker,logback,Java,Spring,Spring Boot,Docker,Logback,我有一个部署在Docker容器中的Spring Boot应用程序。由于Spring Boot打包了一个可执行的fat jar,到目前为止,我只能通过在打包的jar的资源中包含Logback.xml来了解如何配置Logback -Dlogging.config=./logback.xml 但是,我不认为这是最佳实践,因为它需要重新打包整个jar,并重新部署jar以配置appender设置(例如,更改日志级别或添加新的appender) 我如何打包我的Spring Boot应用程序,以便在不需要重

我有一个部署在Docker容器中的Spring Boot应用程序。由于Spring Boot打包了一个可执行的fat jar,到目前为止,我只能通过在打包的jar的资源中包含
Logback.xml
来了解如何配置Logback

-Dlogging.config=./logback.xml
但是,我不认为这是最佳实践,因为它需要重新打包整个jar,并重新部署jar以配置appender设置(例如,更改日志级别或添加新的appender)

我如何打包我的Spring Boot应用程序,以便在不需要重新打包/重新部署的情况下配置Logback设置

编辑:这是我的
logback.xml


fullLogFile.log
真的
真的
%-4相对[%thread]-5级别%logger{35}-%msg%n
滚动日志文件。%d{yyyy-MM-dd}.log
%相对[%thread]%级别%logger-%msg%n

您可以使用docker卷。docker compose示例:

version: '3'
services:
  your-service:
    container_name: service-name
    image: your-service-image
    # environment variable path to your logback volume
    environment:
     - LOGGING_CONFIG=/data/logback_config/logback.xml
    # mount your logback file
    volumes:
      - ./logback.xml:/data/logback_config/logback.xml
    ports:
      - "80:80"
如何以允许的方式打包Spring Boot应用程序 要配置的Logback设置不需要 重新打包/重新部署

只需使用以下参数启动SpringBootJAR,并将logback.xml放在与jar相同的文件夹中。还必须从项目资源中删除logback.xml

-Dlogging.config=./logback.xml

然后它将从那里读取并继续。

这似乎是一个很好的解决方案。我试过了,但没用。然后我尝试了完整的文件路径(不是相对的文件路径),几乎成功了。应用程序创建了日志文件,但实际上并没有将任何内容记录到这些文件中,这很奇怪。我使用的是与我以前用JAR包装的LogLog.xml,所以我认为相同的配置仍然有效。@奥斯汀布朗考虑将LogBuff.xml添加到问题中去找出为什么它不起作用。当然,我已经添加了我的
logback.xml
。请注意,我所有的类都是包
org.my.app…
的派生类,因此应该对它们进行跟踪,我的日志文件保持为空。奇怪的是,我的消息似乎被记录到了标准输出/控制台。我发现了第二个问题。我使用的是
logback.configurationFile
属性,虽然在官方文档()中,但不幸的是它似乎不起作用。我使用了您提供的属性
logging.config
,它现在工作正常,尽管我必须为该属性使用绝对路径。谢谢