log4j根据变量动态生成文件名

简单的log4j设置

一般情况下,log4j配置文件简单的设置为:
log4j.rootLogger=debug,stdout,R
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=test.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.layout=ex.log4j.ExPatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %c %5p  - %m%n
log4j.appender.R.MaxBackupIndex=1
简单实例。
java代码如下:
public class LogTest {

static Logger log = Logger.getLogger(LogTest.class);


public static void main(String[] args) throws IOException {
PropertyConfigurator.configure("log4j.properties");
log.debug("helo");
}
}

一般如上设置即可满足简单的log4j需求。
如果需要根据程序中的变量,将日志打到不同的文件中时,(如:根据某个ID,这样对于大量日志时更加容易查找到想要的日志)
只需在java代码中过去到所配置的FileAppender,然后serFile来修改文件名。
java代码如下:
FileAppender appender = (FileAppender) log.getRootLogger().getAppender("R");
appender.setFile(filePath/fileName);
appender.activateOptions();
日志打印前,设置以上代码,即可。
注意:加上 appender.activateOptions();  可以使得后面打印的日志不会将之前的日志覆盖。
参考 http://blog.csdn.net/zhaofmyan/article/details/6875923

你可能感兴趣的:(log4j)