基本记录大量条目

时间:2016-08-31 20:17:37

标签: java logging netbeans log4j

我正在尝试使用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条目写入日志文件?

1 个答案:

答案 0 :(得分:1)

默认情况下,org.apache.log4j.RollingFileAppender的默认大小限制等于10Mb。您可以使用

增加它
log4j.appender.R.maxFileSize=<number_of_bytes_you_need>

或者您可以选择另一个appender实现。您可以在官方manual找到更多信息。

目前log4j 1.x版本已过时。我建议您使用log4j 2.x