1. 程式人生 > 程式設計 >java專案打包成可執行jar用log4j將日誌寫在jar所在目錄操作

java專案打包成可執行jar用log4j將日誌寫在jar所在目錄操作

開發一個demo時想將日誌輸出到最終打包的jar所在目錄,從網上學習實驗整理之後的配置如下,

log4j.properties

log4j.rootLogger = INFO,console,logFile

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=INFO
log4j.appender.console.ImmediateFlush=true
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n

log4j.appender.logFile=org.apache.log4j.FileAppender
log4j.appender.logFile.ImmediateFlush=true
log4j.appender.logFile.Append=false
log4j.appender.logFile.Encoding=UTF-8
log4j.appender.logFile.File=jarDemo.log
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n

Main.java

private static Logger logger = LoggerFactory.getLogger(Main.class);

 static {
  String path = new File("").getAbsolutePath();

  FileAppender appender = (FileAppender) org.apache.log4j.Logger.getRootLogger().getAppender("logFile");
  appender.setFile(path + File.separator + "jarDemo.log");
 }

最終打包成jar執行時,將會在jar檔案所在目錄生產一個jarDemo.log的日誌檔案,如果時用idea執行,這個日誌檔案會在原始碼所在專案的根目錄。

補充知識:springboot工程打成jar包後執行時,讀取外部的配置檔案

我們在使用“package spring-boot:repackage”命令,將工程打包成jar包之後,在部署到伺服器時,有些配置需要修改,尤其是部署不同的環境時,像資料庫連線等引數都是需要修改的,為了不是每個伺服器上都重新打包,就需要在jar包外部放置配置檔案,jar包執行時優先讀取外部的配置檔案,以windows系統下為例,在目錄“D:\package”目錄下執行,

具體方法如下:

在D:\package目錄下新建lib目錄,將打好的jar包放進去

在D:\package目錄下,將配置檔案放進去,例如application.properties

在D:\package目錄下建立run.bat,內容如下:

java -jar -Dfile.encoding=UTF-8 lib/xxx.jar com.xxx.App

雙擊run.bat執行

原理說明:

springboot 程式會從下面這些路徑來載入application.properties 配置檔案(優先順序按前後順序)

jar包同級目錄下的/config目錄

jar包同級目錄

classpath裡的/config目錄

classpath 同級目錄

以上這篇java專案打包成可執行jar用log4j將日誌寫在jar所在目錄操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。