2009-11-27 5 views
0

위 항목에 대한 많은 질문을 보았지만 해결 방법은 없습니다. $ CATALINA_BASE/logs/디렉토리에서 log4j를 사용하여 사용자 정의 파일에 로그하려고합니다. log4j.xml 파일을 구성하고이를 $ CATALINA_BASE/lib/디렉토리에 복사했습니다.log4j, fileappender 및 tomcat6 로그 질문

나는 로거 만들려면 다음 라인을 사용 - = 새 PatternLayout은

PatternLayout은 레이아웃을(); FileAppender appender = 새 FileAppender ("filename.txt");

여기가 내 문제입니다. FileAppender가 log4j.xml에서 구성한 파일 이름을 사용하게하려면 어떻게해야합니까?

나는 그것이 자동으로를 데리러 기대했지만, 파일 이름을 가지고 가지 않을 것이다 FileAppender에 대한 consructor가 없습니다.

파일의 이름을 얻으려면 log4j.xml을 읽어야합니까? 그렇다면 왜 전 세계에서 그 속성을 XML로 설정해야합니까?

도움을 주시면 감사하겠습니다.

감사합니다, - 바스

답변

1
흠 ... 왜 코드에서 FileAppender를 만드는

? LoggerFactory (일반적으로 log4j XML/properties 파일에서 구성한 com.xxx.yyy 형식의 문자열)를 지정하여 LoggerFactory를 사용하여 로거를 작성하고 로깅을 시작하십시오. 로거가 구성 파일에서 FileAppender 구현 (Daily 또는 RollingFile)을 사용하도록 구성되었는지 확인하고 모두 이동하도록 설정되어 있는지 확인하십시오.

+0

감사합니다. 당신이 말한 것은 의미가 있습니다. 나는 그것을 시도하고 지금은 파일에 로그인 시도가 표시되지만 메시지 자체가 기록되지 않습니다. 로그를 기록한 이유는 PatternLayout을 사용하여 ConversionPattern이 <%d > 이므로 새 날짜가 파일에 추가되지만 데이터 자체는 손실됩니다. 전에이 행동을 본 적이 있니? 감사합니다, -Vas – user220201

+0

가 여기 내 log4j.xml 파일입니다 - : \t <펜더 이름 = "LogTest" \t \t 클래스 = "org.apache.log4j.RollingFileAppender"> \t \t <매개 변수 이름 = "MAXFILESIZE"값 = "100킬로바이트"/> \t \t <매개 변수 이름 = "maxBackupIndex"값 = "5"/> \t \t <매개 변수 이름 = "파일"값 = "$ {가리키는 catalina.home} /logs/LogTest.txt "/> \t \t \t \t \t \t \t <매개 변수 이름 ="들 - ConversionPattern " \t \t \t \t 값 ="가 % d "/> \t \t \t \t \t \t <우선 순위 값 ="디버그 "> \t \t \t user220201