2012-12-19 3 views
1

누구든지이 로그가 파일에 쓰지 않는 이유를 알 수 있습니다. 표준 출력에 두 번 쓰지만 파일에는 쓰지 않습니다.log4j 로그에서 파일에 쓰지 않는 문제

또한 "표준 출력"어 펜더를 제거한 다음 전혀 로깅을 얻지 못했습니다.

package org.berlin.wicket; 
import org.apache.log4j.Logger; 
private static final Logger LOG = Logger.getLogger(QuickstartPage.class); 
LOG.info("Loading constructor"); 

log4j.rootLogger = DEBUG, 표준 출력, mainAppender

log4j.appender.Stdout = org.apache.log4j.ConsoleAppender log4j.appender.Stdout.layout = org.apache.log4j.

PatternLayout을

log4j.appender.Stdout.layout.conversionPattern = % - 5P - % -26.26c {1} - %의 m \ 없음

log4j.appender.mainAppender = org.apache.log4j.DailyRollingFileAppe core.log 파인더

log4j.appender.mainAppender.file = 로그/

log4j.appender.mainAppender.datePattern = '.'YYYY-MM-DD

log4j.appender.mainAppender.append = 사실

log4j.appender.mainAppender.layout = org.apache.log4j.PatternLayout

log4j.appender.mainAppender.layout.ConversionPattern = % d의 {MM/DD/YYYY HH : MM : SS. SSS}] [% C {1}. % M() : % L] [% t] [% p] - % m % n

log4j.logger.org.berlin = DEBUG, 표준 출력, mainAppender

답변

3

동일한 펜더를 사용하는 두 개의 로거 (표준 출력)가, 따라서 콘솔에 항목을 볼 이유를 두 번 누릅니다.

다른 언급했듯이 속성은 대소 문자를 구분하므로 파일 첨부자가 올바르게 구성되지 않은 이유는 무엇입니까?

+0

나는 첫 번째 부분을 따르지 않을 것이다. 두 개의 로거가 동일한 appender를 가리키고 있습니까? RootLogger 및 logger.org.berlin?/log4j.logger.org.berlin = DEBUG, Stdout, mainAppender? –

+0

예 - rootLogger와 org.berlin은 모두 Stdout을 appender로 사용하고 있습니다. 나는이 복제가 두 개의 콘솔 기록을 보는 이유라고 생각합니다. –

+0

쿨, 수정되었고 작동 중입니다. 또한 파일 경로를 전체 파일 경로로 변경했습니다. –

-3

당신은 myfile.log라는 파일에 로그 기록의 FileHandler의 인스턴스를 만들어야합니다.

FileHandler fileHandler = new FileHandler("myfile.log", true);   
logger.addHandler(fileHandler); 
+0

해야할까요? 아니면? 나는 전에 log4j를 해본 적이 없다. 즉, 모든 코드를 통해 여러 줄의 로깅을 추가해야한다는 뜻입니다. 내 log4j.properties 파일에 문제가 있습니까? –

+0

log4j.properties 파일에 문제가 표시되지 않습니다. 로그 파일이 생성 되었습니까? – tchike

+0

실제로 사용하고있는 "파일"경로라고 생각합니다. –

2

FileAppend 속성은 경우 senstive 있습니다.

log4j.appender.mainAppender.File=someFileName.log log4j.appender.mainAppender.Append=true

관련 문제