[英]Spring Boot deployed JAR not finding properties file in deployed directory
[英]Spring Boot log file relative to jar directory not start directory
在我的Spring Boot配置文件中,可以指定相對於Spring Boot jar而不是相對於jar啟動目錄的日志文件位置嗎?
例:
#application.yml
logging:
file: ./logs/app.log
目錄:
開始:
cd /random/dir
java -jar /app/dir/app.jar
結果:
期望:
附加信息:jar將在不同的操作系統上運行。 因此jar路徑可能類似於:
在運行時,我可以計算出jar / install目錄。 是否有Java解決方案可以讓我在啟動后設置logging.file的位置? 還是記錄器當時已經初始化?
完整的解決方案:基於@satyesht
#application.yml
app:
log:
#Set a default directory in case a user "double clicks" the jar to launch it.
dir: ./logs
file: app.log
logging:
file: ${app.log.dir}/${app.log.file}
開始:
cd /random/dir
java -Dapp.log.dir=/app/dir/logs -jar /app/dir/app.jar
一種簡單的方法是將日志目錄作為如下的系統屬性傳遞。
#application.yml
logging:
file: ${LOGDIR}/logs/app.log
在運行應用程序時,您可以將LOGDIR系統屬性指定為VM參數
cd /random/dir
java -jar /app/dir/app.jar -DLOGDIR=/app/dir/
您必須提前知道jarfile的位置。 但是是的,區別在於絕對路徑和相對路徑之間 。
使用.
表示您要從打開控制台窗口的位置開始。 這是相對於您在終端中的位置的路徑。
使用/表示您要從驅動器的根目錄開始。 現在,顯然您不想將文件存儲在驅動器的根目錄中。 但是,假設我將我的jar放在了/app/dir/app.jar
文件夾中,那么配置就這么簡單:
#application.yml
logging:
file: /app/dir/logs/app.log
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.