java jar log4j_java项目打包成可执行jar用log4j将日志写在jar所在目录操作
開發(fā)一個demo時想將日志輸出到最終打包的jar所在目錄,從網(wǎng)上學(xué)習(xí)實驗整理之后的配置如下,
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執(zhí)行時,將會在jar文件所在目錄生產(chǎn)一個jarDemo.log的日志文件,如果時用idea運行,這個日志文件會在源碼所在項目的根目錄。
補充知識:springboot工程打成jar包后運行時,讀取外部的配置文件
我們在使用“package spring-boot:repackage”命令,將工程打包成jar包之后,在部署到服務(wù)器時,有些配置需要修改,尤其是部署不同的環(huán)境時,像數(shù)據(jù)庫連接等參數(shù)都是需要修改的,為了不是每個服務(wù)器上都重新打包,就需要在jar包外部放置配置文件,jar包運行時優(yōu)先讀取外部的配置文件,以windows系統(tǒng)下為例,在目錄“D:\package”目錄下運行,
具體方法如下:
在D:\package目錄下新建lib目錄,將打好的jar包放進去
在D:\package目錄下,將配置文件放進去,例如application.properties
在D:\package目錄下創(chuàng)建run.bat,內(nèi)容如下:
java -jar -Dfile.encoding=UTF-8 lib/xxx.jar com.xxx.App
雙擊run.bat運行
原理說明:
springboot 程序會從下面這些路徑來加載application.properties 配置文件(優(yōu)先級按前后順序)
jar包同級目錄下的/config目錄
jar包同級目錄
classpath里的/config目錄
classpath 同級目錄
以上這篇java項目打包成可執(zhí)行jar用log4j將日志寫在jar所在目錄操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
總結(jié)
以上是生活随笔為你收集整理的java jar log4j_java项目打包成可执行jar用log4j将日志写在jar所在目录操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 首字母小写_java实现将字符
- 下一篇: java 微信转账_实现微信转账功能