2012-11-25 5 views
6

log4j2를 사용하여 시스템을 로그 파일로 만들려고합니다. 제가 개발 중이므로, 해당 파일의 site에있는 지침을 따라 실행했지만 로그를 실행할 때 오류가 없습니다. 설정 한 위치에 저장되지 않습니다 (예 : "D : \ logs \ app.log"). 여기 Log4j2 파일 저장 중 (RollingFile appender 사용)

내가하려고

<?xml version="1.0" encoding="UTF-8"?> 
<configuration status="OFF"> 
    <appenders> 
    <RollingFile name="MyRollingFile" fileName="D:/logs/app.log" 
       filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> 
     <PatternLayout> 
     <pattern>%d %p %C{1.} [%t] %m%n</pattern> 
     </PatternLayout> 
     <Policies> 
     <TimeBasedTriggeringPolicy /> 
     <SizeBasedTriggeringPolicy size="250 MB"/> 
     </Policies> 
     <DefaultRolloverStrategy max="20"/> 
    </RollingFile> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
    </appenders> 
    <loggers> 
    <logger name="Log_RollingFile" level="TRACE" additivity="false"> 
     <appender-ref ref="MyRollingFile"/> 
    </logger> 
    <root level="ERROR"> 
     <appender-ref ref="Console"/> 
    </root> 
    </loggers> 
</configuration> 

내의 log4j.xml입니다 : 볼 app.log을 삭제

  • 경우 내 구성 (D : \ 로그 \ app.log) 공장. 내가 응용 프로그램을 실행할 때 app.log가 생성되어 구성을보고 있다는 것을 의미한다고 생각하므로 Java 응용 프로그램에서 log.info를 저장하지 않습니다.
  • 루트 수준을 "TRACE"로 변경하십시오. log.info를 인쇄합니다.

[편집 :]

내 클래스 경로에 이러한 라이브러리가

  • 의 log4j-API-2.0-beta3.jar는
  • 의 log4j-코어 - 2.0-beta3.jar

RollingFile 구성이나 라이브러리 (아마도)에 뭔가 빠졌습니까?

미리 감사드립니다.

답변

3

로거 이름이 잘못되었습니다.

연결 한 구성 지침에서 설명한대로 로거는 로깅을 캡처하려는 패키지/클래스에 따라 이름을 지정해야합니다.

예에서 com.foo.Bar이라는 로거는 com.fooTRACE 레벨의 Bar 클래스의 모든 것을 기록합니다.