[英]How to Extern log4j.properties file with Spring Boot Microservice and Run It As a Linux Service?
有一個基於Spring Boot(1.5.4.RELEASE)的微服務,我將jar部署到AWS EC實例(Linux環境)。 現在,我還部署了一個外部log4j.properties文件,所以我必須像這樣啟動微服務:
java -jar myapp.jar -Dlogging.config=/path/to/log4j.properties
如何將此Spring Boot微服務配置為Linux服務,我可以使用這些標志啟動和停止它:
sudo service myapp start | stop | status | restart
非常感謝你。
使用指向springboot應用程序的符號鏈接,您可以將其作為服務進行控制......
sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp
將application.properties
放入myapp文件夾,您可以覆蓋應用程序中捆綁的應用程序。 這樣您就不需要使用命令行開關。 只需將日志配置的路徑指定為其內部屬性鍵logging.config
值。
但請注意,此解決方案並非真正的最佳實踐。 一旦你在生產中運行了一大堆服務,你可能更願意采用Spring cloud配置的內容來進行外部化配置,你可能還希望將日志聚合在一個集中的服務上,以便對所有服務進行概述。您的服務在一個地方登錄。
根據spring-boot部署 ,
完全可執行的jar可以像任何其他可執行二進制文件一樣執行,也可以使用
init.d
或systemd
注冊
確保使用下面的插件構建應用程序(共享鏈接中的gradle版本):
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
並且如Jörg所示,在init.d中創建一個符號鏈接:
sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp
那是簡化版:)
更多問題,您需要自定義init,這可以通過conf
文件完成 - 所有這些都在文檔中指定。
除
JARFILE
和APP_NAME
,可以使用.conf文件配置設置。 該文件位於jar文件旁邊,並且具有相同的名稱,但后綴為.conf而不是.jar。 例如,名為/var/myapp/myapp.jar的jar將使用名為/var/myapp/myapp.conf的配置文件。
例如: myapp.conf
JAVA_OPTS=-Xmx1024M
LOG_FOLDER=/custom/log/folder
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.