당신은 응용 프로그램이 시작될 때 로그 파일을 롤오버하는 ExternallyRolledFileAppender
과 Roller
클래스를 사용할 수 있습니다.
import org.apache.log4j.Logger;
import org.apache.log4j.varia.Roller;
public class Test {
private static final Logger log = Logger.getLogger(Test.class);
public static void main(final String[] args) {
Roller.main(new String[] {"localhost", "9999"});
log.debug("Started application!");
}
}
그리고 예를 들어 log4j.properties
파일 :
log4j.appender.file=org.apache.log4j.varia.ExternallyRolledFileAppender
log4j.appender.file.File=app.log
log4j.appender.file.Port=9999
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5p: %t: %c: %m%n
log4j.rootLogger=DEBUG, file
이
ExternallyRolledFileAppender
의 경고에주의를 기울이지 마십시오 개시가 인증되지 않은 것을
주
는 여기에 예제 클래스입니다. 누구든지 롤오버를 시작할 수 있습니다. 프로덕션 환경에서는 원하지 않는 롤오버를 방지하기 위해 몇 가지 보호 형식을 추가하는 것이 좋습니다.
이 방법이 사용자의 요구에 맞지 않는다면, 비슷한 Appender
구현을 만드는 것이 쉽습니다.
코드를 "깨끗하게"유지하고 싶습니다. log4j에 대한 모든 구성을 이전에 XML 파일로 제거했습니다. 그러나, 나는 setFile() 프로그래밍 방식으로 구성을 사용하여 노력하고 그 위대한 작동합니다. – EsTeGe