在我的 Spring Boot 配置文件中,我可以指定相對于 Spring Boot jar 的日志文件位置,而不是相對于啟動 jar 的目錄嗎?例子:#application.ymllogging: file: ./logs/app.log目錄:/app/dir/app.jar/隨機/目錄開始:cd /random/dirjava -jar /app/dir/app.jar結果:/random/dir/logs/app.log期望:/app/dir/logs/app.log附加信息:jar 將在不同的操作系統上運行。所以 jar 路徑可能類似于:/app/dir/app.jarC:\app\dir\app.jar在運行時,我可以計算出 jar/install 目錄是什么。是否有 Java 解決方案允許我在啟動后設置 logging.file 位置?或者當時記錄器是否已經初始化?完整的解決方案:基于@satyesht#application.ymlapp: log: #Set a default directory in case a user "double clicks" the jar to launch it. dir: ./logs file: app.loglogging: file: ${app.log.dir}/${app.log.file}開始:cd /random/dirjava -Dapp.log.dir=/app/dir/logs -jar /app/dir/app.jar
2 回答

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
一種簡單的方法是將日志目錄作為系統屬性傳遞,如下所示。
#application.yml
logging:
file: ${LOGDIR}/logs/app.log
在運行您的應用程序時,您可以將 LOGDIR 系統屬性指定為 VM 參數
cd /random/dir
java -jar /app/dir/app.jar -DLOGDIR=/app/dir/

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
您必須提前知道 jarfile 的位置。但是,是的,區別在于絕對路徑和相對路徑。
Using.表示您要從我們的控制臺窗口打開的位置開始。這是相對于您在終端中的位置的路徑。
使用 / 表示您要從驅動器的根目錄開始?,F在,顯然您不想將文件存儲在驅動器的根目錄中。但是假設我在文件夾中有我的 jar:/app/dir/app.jar那么配置就像說一樣簡單:
#application.yml
logging:
file: /app/dir/logs/app.log
添加回答
舉報
0/150
提交
取消