如何为 UAT 服务器更改 (logback.xml) 中 logging.file 的路径?

How to change the path for logging.file in (logback.xml) for UAT server?

我正在尝试 运行 UAT (Linux) 服务器上的一个项目,但是有一个问题,我需要将日志写入测试服务器的不同路径。

项目资源包含logback.xml,指定写入日志的位置:

<property name = "logging.path" value = "/logs"/>
<property name = "logging.file" value = "app-logger"/>

我无法更改此文件,因为在这种情况下一切都是正确的,但是对于 UAT,我创建了另一个 logback.xml 并且不将其放在资源中而是放在另一个目录中,当我 运行我要指定的jar文件我需要拿这个logback.xml

在 UAT 上我执行这个命令

java -Xmx512M -jar /home/user/app/program/program-0.1.jar --logging.config = app/program/config/logback.xml

我收到这个错误:

ERROR in ch.qos.logback.core.rolling.RollingFileAppender [RollingFile] - openFile (/logs/app-logger.log,true) call failed. java.io.FileNotFoundException: /logs/app-logger.log (No such file or directory)
        at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration (LogbackLoggingSystem.java:169)

因此,我创建的第二个文件 logback.xml 将被忽略,而使用位于资源中的文件。我究竟做错了什么?如何将另一个 logback.xml 放入 Spring?

您可以将所需的日志目录添加到环境特定的属性文件中, 应该类似于 application.uat.properties。所以你会添加类似 LOG_DIR=path/to/directory

完成后,将“<property resource="application.${env}.properties"/>”添加到您的 logback.xml

最后在您的文件附加程序中,添加“<file>${LOG_DIR}/serive.log</file>