2010-01-06 5 views
3

우리는 Tomcat 6의 Windows 설치를 사용하고 있습니다. 기본적으로 app의 log4j 출력은 $ {catalina.base} /logs/stdout_.log 파일로 이동합니다. 이 로그 파일은 Tomcat을 다시 시작할 때만 롤오버되며 파일 이름에는 항상 날짜가 포함됩니다.Tomcat 6 stdout.log 파일을 log4j DailyRollingFileAppender처럼 작동하게 할 수 있습니까?

DailyRollingFileAppender와 같이 동작합니다. 롤오버 할 때 파일의 이름을 바꿉니다. Notepad ++에서 어제 같은 파일을 열었 기 때문에 메모장 + +를 열고 오늘 로그를 볼 수 있습니다. :)

나는 log4j에 다른 appender를 만들 수 있지만 stdout.log와 다른 로그 파일로 끝날 것이라고 알고 있으며, 두 파일에 로깅 할 때 약간의 성능 저하가있을 수 있습니다. 내 context.xml에 swallowOutput = true를 추가하려했지만 stdout.log에 모든 로깅을 얻습니다. 어떤 아이디어?

답변

0

Logging in Tomcat에 설명 된 단계를 시도해 보셨습니까? 이 단계를 따르면 lib 디렉토리에있는 log4j.properties로 끝내고 마음의 내용을 사용자 정의 할 수 있습니다.

0

가장 큰 성과는 로그하려는 개체를 준비 할 때입니다 (알다시피, logger.info(" operating on " + myObject.toString + " bla bla bla") 일 때 myObject.toString()의 비용이 가장 큽니다). 파일 로깅보다 이미 파일을 가지고 있다면 문제가되지 않습니다. 그리고 log4j는 균형이 잘 잡히고 최적화되었습니다. 버퍼를 사용하여 로그를 작성하므로 파일 시스템을 너무 자주 호출하지 않습니다.

그냥 다른 appender를 만들면 tomcat 로그 및 appilcation 로그와 구별됩니다. 몇 개의 로그가 있습니까? 하루 1GB 이상의 성능 손실을 두려워하십니까? 그것을 테스트하기 전에 아무것도 가정하지 마십시오. 그냥 설정하고 일종의 성능 테스트를 해보십시오.

관련 문제