2013-01-24 3 views
1
내가 대신 filename.1, filename.2의 이름으로 SYSDATE를 추가 log4j에에서 백업 파일 이름을 지정할

.... Log4J를 : SYSDATE

내가 그것을 어떻게 할 수와 백업 파일 이름은?

답변

2

이 작업을 수행하려면이있는 RollingFileAppender (을 참조하면 Log4J를 "엑스트라"JAR (아파치에서 제공)를 사용하고, 사용할 필요가 FileNamePattern 매개 변수) : 거기에 자바 독에서 가져온 예를 들어 http://logging.apache.org/log4j/companions/extras/apidocs/index.html

() : 이미 Log4J를 커뮤니티에 의해 수행 된

<appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender"> 
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
     <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/> 
    </rollingPolicy> 
</appender> 
+0

log4j.properties에서 어떻게 구성 할 수 있습니까 ?? –

+0

"새로운"설정 기능은 XML을 사용하여 Log4J를 구성하고 DOMConfigurator를 사용하는 경우에만 사용할 수 있습니다. 기본적으로'log4j.properties' 파일을 XML 형식으로 변환하고,'log4j.xml' 파일을 클래스 패스에 넣기 만하면됩니다. 더 자세한 정보는'DOMConfigurator'를 보라. 어쨌든 XML은 Log4J 구성의 진행 방향입니다. – Isaac

1

파일을 매분 또는 매시간과 같이 특정 빈도로 백업해야하는 경우 DailyRollingFileAppender 클래스가 목적에 맞습니다.

그러나 특정 크기에 도달 한 후에 파일을 보관해야하는 경우 좋은 방법은 RollingFileAppender 클래스를 확장하는 것입니다. 아래에 유사한 방식의 rollover() 메서드를 재정의해야합니다

public void rollOver() { 
... 

file = new File(fileName + '.' + System.currentTimeMillis()); 

... 

} 
+0

이 (내 대답은 아래 참조). – Isaac

+0

rollOver() 메서드를 재정의하는 데 문제가 있습니다. RollingFileAppender의 개인 속성에 액세스 할 수 없습니다. –

+0

@AlexCuervo'setFile (fileName + '.'+ System.currentTimeMillis())'를 시도 했습니까? – RGO