2017-12-27 10 views
-1

정보 및 오류 로거를 참조 용으로 텍스트 파일에 쓰는 Java 응용 프로그램에서 작업하고 있습니다. 그 파일은 엄청나게 커지고 있습니다. 그래서 파일의 크기를 확인해야합니다 ... 예를 들어 파일 크기가 10MB를 넘으면 다른 파일을 만들어야합니다.tomcat server.xml 또는 web.xml을 사용하여 새 로그를 만들기 전에 로그 파일을 백업하십시오.

이와 같이 10 개의 파일을 만들고 10 개의 파일을 차례로 만들어야합니다. 10 개의 파일에 도달하면 시작 파일을 삭제하고 다시 만들기 시작해야합니다 ...

파일을 삭제하려면 어떻게해야합니까? 파일 수는 10 개가됩니까?

이 작업의 주요 제약 조건은 log4j 또는 logback 라이브러리를 사용하지 않고 요구 사항을 완료하는 것입니다. 제약 조건을 감안할 때

Logging.properties

1catalina.org.apache.juli.AsyncFileHandler.level = FINE 
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 

2localhost.org.apache.juli.AsyncFileHandler.level = FINE 
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost. 

3manager.org.apache.juli.AsyncFileHandler.level = FINE 
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
3manager.org.apache.juli.AsyncFileHandler.prefix = manager. 

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE 
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager. 

java.util.logging.ConsoleHandler.level = FINE 
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter 


############################################################ 
# Facility specific properties. 
# Provides extra control for each logger. 
############################################################ 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler 
+0

log4j와 같은 타사 API를 사용하고 있습니까? – Ele

+0

log4j를 사용하지 않으려는 경우에도 소스를 살펴볼 수 있습니다. http://grepcode.com/file/repo1.maven.org/maven2/log4j/log4j/1.2.15/org/apache/ log4j/RollingFileAppender.java – StephaneM

+0

로깅 코드 및 구성 파일 중 일부를 포함하십시오. – jmehrens

답변

0

, 당신은 대신 org.apache.juli.AsyncFileHandlerjava.util.logging.FileHandler를 사용할 수 있습니다. 당신이 7월의 FileHandler를 설치할 수 있도록

1catalina.org.apache.juli.AsyncFileHandler.level = FINE 
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 

2localhost.java.util.logging.FileHandler.level = FINE 
2localhost.java.util.logging.FileHandler.limit = 10000000 
2localhost.java.util.logging.FileHandler.count = 10 
2localhost.java.util.logging.FileHandler.pattern = ${catalina.base}/logs/localhost%g.log 

3manager.org.apache.juli.AsyncFileHandler.level = FINE 
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
3manager.org.apache.juli.AsyncFileHandler.prefix = manager. 

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE 
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager. 

java.util.logging.ConsoleHandler.level = FINE 
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter 


############################################################ 
# Facility specific properties. 
# Provides extra control for each logger. 
############################################################ 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler 

당신은 logging.properties modify해야합니다.

관련 문제