我正在尝试使用Log4j了解日志记录,我当前的一个探索是将大量数据条目(100k)写入日志文件。我目前正在使用Log4j 1.2.17来简化和NetBeans 8.1。我的log4j.properties文件是
log4j.rootLogger=debug, stdout, R
# This is use for debuging mode
log4j.logger.testlogging=DEBUG
#### Appender writes to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p [%t] (%F:%L) - %m%n
#### Appender writes to a file
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p [%t] (%F:%L) - %m%nenter code here
我的实际节目是
package log4j;
import org.apache.log4j.Logger;
public class Log4j {
//initializing the logger
private final static Logger log = Logger.getLogger(Log4j.class.getName());
public static void main(String[] args) {
int testnum = 100000;
for (int i = 0; i<testnum ; i++) {
log.debug("This is a test and the current value is " + i);
}
}
}
当我查看运行此程序后创建的examples.log文件时,我发现并非所有条目都像我在控制台中看到的那样填充。我看它可能在6962到14752之间波动到99775之间。文件可以输出的内存是否有限制?如何将所有100k条目写入日志文件?
答案 0 :(得分:1)
默认情况下,org.apache.log4j.RollingFileAppender
的默认大小限制等于10Mb
。您可以使用
log4j.appender.R.maxFileSize=<number_of_bytes_you_need>
或者您可以选择另一个appender实现。您可以在官方manual找到更多信息。
注
目前log4j 1.x
版本已过时。我建议您使用log4j 2.x