2016-08-31 3 views
1

Log4j로 로깅을 이해하려고하는데 현재 사용하고있는 탐험 중 하나가 많은 양의 데이터 항목 (100k)을 로그 파일에 쓰고 있습니다. 현재 NetBeans 8.1과 Log4j 1.2.17을 사용하고 있습니다. 내 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 

입니다 그리고 나는 모든 항목이 채워지고 볼이 프로그램을 실행 한 후 만들어 내 examples.log 파일을 볼 때 내 실제 프로그램은

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);    
     } 
    }  
} 

입니다 콘솔에서 보는 것처럼. 나는 아마 6962에서 14752까지 99775까지 시작하는 사이에 변동하는 것을 본다. 파일이 출력 할 수있는 메모리에는 한계가 있는가? 100k 항목이 모두 로그 파일에 기록되도록하려면 어떻게해야합니까?

답변

1

기본적으로 org.apache.log4j.RollingFileAppender의 기본 크기 제한은 10Mb입니다.

log4j.appender.R.maxFileSize=<number_of_bytes_you_need> 

또는 다른 appender 구현을 선택할 수 있습니다. 공식 manual에서 자세한 정보를 확인할 수 있습니다.

참고 순간의 log4j에서

1.x 버전은 사용되지 않습니다. 내가 log4j를 사용하는 것이 좋습니다 2.x

+0

잘하면 모든 것을 설명하기 위해 크기를 만들려고했는데, 그것은 여전히 ​​36KB까지 올라간 후에도 모든 것을 움켜 잡지 못합니다. 어쨌든 나는 1.x 버전이 은퇴했다는 것을 알고 있지만, 2.x가 내 작업 공간에서 작업 할 수 없기 때문에 롤백했다. – TimTom