一般默認(rèn)將log4j的配置文件放在項(xiàng)目中的src或者maven項(xiàng)目的resource文件夾下树碱,程序可以直接讀取到配置文件肯适,并以配置文件的配置輸入日志。
但是在將程序發(fā)布是成榜,默認(rèn)log4j的配置文件也要一同被打入jar包才可能被讀取到疹娶,要想將log4j的配置文件放在jar包外可以通過以下的代碼手動(dòng)指定log4j配置文件的位置:
將以下代碼放在main函數(shù)所在類中:
static {
DOMConfigurator.configure(System.getProperty("user.dir") + File.separator + "conf" + File.separator
+ "log4j.xml");
}
static {
DOMConfigurator.configure(System.getProperty("user.dir") + File.separator + "conf" + File.separator
+ "log4j.xml");
}
或
static {
PropertyConfigurator.configure(System.getProperty("user.dir") + File.separator + "conf" + File.separator
+ "log4j.properties");
}
static {
PropertyConfigurator.configure(System.getProperty("user.dir") + File.separator + "conf" + File.separator
+ "log4j.properties");
}
上述代碼是log4j的配置文件放在jar包所在目錄下的conf目錄中。
以上代碼的區(qū)別在于DOMConfigurator載入的是log4j.xml而PropertyConfigurator載入的是log4j.properties文件伦连。
以上內(nèi)容轉(zhuǎn)自:http://free0007.iteye.com/blog/1577264
或者下面這種方式:
PropertyConfigurator.configure(Props.getString("log4"));
使用:
private static Logger logger = Logger.getLogger(Transfer.class);
PropertyConfigurator.configure(Props.getString("log4jforerror"));
logger.debug("這里記錄debug級(jí)別的日志");
logger.error("這里記錄error級(jí)別的日志");
log4j.properties:
### 設(shè)置日志級(jí)別###
log4j.rootLogger = debug,stdout,D,E
### 輸出信息到控制臺(tái) ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 輸出DEBUG 級(jí)別以上的日志到=./logs/log.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.D.File = C:\\mysqltomongodb\\logs\\log.log
log4j.appender.D.File = /opt/facedatatransfer/logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 輸出ERROR 級(jí)別以上的日志到=./logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.E.File =C:\\mysqltomongodb\\logs\\error.log
log4j.appender.E.File = /opt/facedatatransfer/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n