Maven專案 Log4j 配置及日誌輸出到相對路徑
阿新 • • 發佈:2019-02-16
1.Maven pom.xml 配置log4j依賴
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
正確新增依賴後Maven會自動從本地倉庫或者遠端倉庫載入log4j及其依賴的jar包
如果載入完成後專案出現紅色感嘆號提示
一般表示Maven載入的jar包出現問題,此時在Eclipse的window/Problems檢視下檢視有哪些jar包出現問題
下載正確的jar包後替換本地倉庫相應的jar包即可解決
2.建立log4j配置檔案 log4j.properties
log4j.rootLogger = info,A,B log4j.appender.A = org.apache.log4j.DailyRollingFileAppender log4j.appender.A.File = ${logPath}\\log.log log4j.appender.A.Append = true log4j.appender.A.Threshold = info log4j.appender.A.DatePattern ='.'yyyy-MM-dd log4j.appender.A.layout = org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern = %d %l - %msg%n log4j.appender.B = org.apache.log4j.DailyRollingFileAppender log4j.appender.B.File =${logPath}\\error.log log4j.appender.B.DatePattern ='.'yyyy-MM-dd log4j.appender.B.Append = true log4j.appender.B.Threshold = ERROR log4j.appender.B.layout = org.apache.log4j.PatternLayout log4j.appender.B.layout.ConversionPattern = %d %l - %msg%n
在上述程式碼塊中定義了兩種log配置
A配置輸出到相對路徑的log.log檔案,用來儲存程式執行的info級別日誌
B配置輸出到相對路徑的error.log檔案,用來儲存程式執行的error級別日誌
3.建立程式配置檔案實現動態獲取相對路徑
application.properties
# The logPath when program running
log-folder=log
4.程式碼中動態配置路徑
public class LogConfig { private static Logger logger = LogManager.getLogger(LogConfig.class); private LogConfig(){ } public static void setLog(){ Properties pro = new Properties(); try { InputStream in = new BufferedInputStream(new FileInputStream(("application.properties"))); pro.load(in); /*建立log資料夾*/ FileDirectory.creatDirectory(pro.getProperty("log-folder")); File file=new File(pro.getProperty("log-folder")); String logPath=file.getAbsolutePath(); /*windows系統路徑特殊*/ if(pro.getProperty("system").equals("windows")){ logPath=logPath.replace("\\", "\\\\"); } System.setProperty("logPath",logPath); PropertyConfigurator.configure ("log4j.properties"); logger.info("Log fold config done"); } catch (Exception e) { logger.error("error",e); } } }