通常log4j的配置都写在log.propertiy中。但是,遇到log文件的path不能hard code的地方就没辙啦,所以只能通过程序配置。
在系统启动的时候先配置log4j的configuration
static {
Properties pro = new Properties();
pro.put("log4j.rootLogger", "DEBUG,C,R,A");
pro.put("log4j.appender.C", "org.apache.log4j.ConsoleAppender");
pro.put("log4j.appender.C.Threshold", "INFO");
pro.put("log4j.appender.C.layout", "org.apache.log4j.PatternLayout");
pro.put("log4j.appender.C.layout.ConversionPattern", "%n %m");
pro.put("log4j.appender.R", "org.apache.log4j.RollingFileAppender");
pro.put("log4j.appender.R.File", MachineBuilder.getCurMachine().getFolder().getLogPath() + "XXX.log");
pro.put("log4j.appender.R.MaxFileSize", "10000KB");
pro.put("log4j.appender.R.MaxBackupIndex", "20");
pro.put("log4j.appender.R.Threshold", "INFO");
pro.put("log4j.appender.R.layout", "org.apache.log4j.PatternLayout");
pro.put("log4j.appender.R.layout.ConversionPattern", "%n[%d{HH:mm:ss}] [%p] %m");
pro.put("log4j.appender.A", "org.apache.log4j.RollingFileAppender");
pro.put("log4j.appender.A.File", MachineBuilder.getCurMachine().getFolder().getLogPath() + "XXX_debug.log");
pro.put("log4j.appender.A.MaxFileSize", "10000KB");
pro.put("log4j.appender.A.MaxBackupIndex", "20");
pro.put("log4j.appender.A.Threshold", "DEBUG");
pro.put("log4j.appender.A.layout", "org.apache.log4j.PatternLayout");
pro.put("log4j.appender.A.layout.ConversionPattern", "%n[%d{HH:mm:ss}] [%p] %m");
PropertyConfigurator.configure(pro);
}