java应用(非web应用)中log4j.properties/xml动态修改配置文件,无需重启,就能立即生效,如何实现?如下测试代码:importorg.apache.log4j.Logger;importutil.Log4jXMLConfig;publi...
java应用(非web应用)中log4j.properties/xml动态修改配置文件,无需重启,就能立即生效,如何实现?
如下测试代码:
import org.apache.log4j.Logger;
import util.Log4jXMLConfig;
public class BeTestClass {
static String log4jPath;
static Logger log = Logger.getLogger(BeTestClass.class);
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
//PropertyConfigurator.configure(log4jPath);
log.info("----------info");
log.debug("----------debug");
log.error("----------error");
System.out.println("***********************");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
log4j.properties:
log_home=../log
log4j.rootLogger=info,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern= [%d{yyyyMMdd-HH:mm:ss}-%p][%F:%L] %m%n
log4j.appender.DailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyFile.Threshold = info
log4j.appender.DailyFile.File=${log_home}/test.log
log4j.appender.DailyFile.encoding=gbk
log4j.appender.DailyFile.Append=true
log4j.appender.DailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.DailyFile.layout.ConversionPattern=[%d{yyyyMMdd-HH:mm:ss}-%p][%F:%L] %m%n
先运行上面的测试类,运行一段时间后,修改log4j.properties配置文件,将info模式改为error模式,使应用及时生效,如何实现?
展开