log4j.appender.myLogFile.File=E:/logs/test/main.log
上面这一行,是典型的log4j的log文件路径配置。那么,能否根据程序的不同参数,将log输出到不同的路径呢。答案是有的,实例代码如下
java代码:
public static Logger getLoggerByAccout1(String accout) { if (null == rootLog) { System.setProperty("myconfig.accout", accout); rootLog = Logger.getRootLogger(); } return rootLog; }
log4j配置:
log4j.appender.myLogFile.File=E:/logs/${myconfig.accout}/main.log
先通过System.setProperty方法,写入myconfig.accout变量为4。这时候,log4j创建实例时,就会获取到${myconfig.accout}的值为4,于是,File的值,就是E:/logs/4/main.log了
注:
按道理来说,可以在java代码中配置File路径。但实际验证时,每次重新启动程序并输出log,log文件都会被完全覆盖,上一次程序输出的log,就都没了,还没找到解决办法。因此,也就不贴这个方法的代码了。