基本日志记录大量条目



我正在尝试使用Log4j理解日志记录,我目前的探索之一是将大量数据条目(100k)写入日志文件。我目前使用Log4j 1.2.17简单和NetBeans 8.1。我的log4j。属性文件

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项都写入日志文件?

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

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

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

注意

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

相关内容

  • 没有找到相关文章

最新更新