在eclipse中默认将log4j的配置文件放在src文件夹下,程序可以直接读取到配置文件,并以配置文件的配置输入日志。
但是在将程序发布是,默认log4j的配置文件也要一同被打入jar包才可能被读取到,要想将log4j的配置文件放在jar包外可以通过以下的代码手动指定log4j配置文件的位置,
将以下代码放在main函数所在类中:
- static {
- DOMConfigurator.configure(System.getProperty("user.dir") + File.separator + "conf" + File.separator
- + "log4j.xml");
- }
上述代码是log4j的配置文件放在jar包所在目录下的conf目录中。
以上代码的区别在于DOMConfigurator载入的是log4j.xml而PropertyConfigurator载入的是log4j.properties文件。
System.getProperty("user.dir")得到的是程序所在的目录
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