通常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); }