2013-11-15 2 views
1

그래서 항상 lo4j를 설정하는 데 문제가 있습니다. 실제로 구성이 실제로 무엇을 의미하는지 완전히 파악할 수는 없습니다. 즉, 나는 새로운 애플리케이션에서 log4j2를 설정하려고하는데,이 시점에서 이것을 파악하려고 애 쓰고 싶지는 않습니다.Log4j2 구성 - 매일 최대 파일로 롤링

내 응용 프로그램의 경우 log4j2가 파일과 콘솔 (즉, 표준 출력)에 모두 기록되도록 설정해야합니다. 이와 함께 매일 새 로그 파일을 만들고 한 번에 10 개만 유지하도록 구성해야합니다.

ERROR로 설정된 로깅에 대한 시스템 전체 기본 임계 값을 사용하여 비동기 로깅을 사용하고 싶습니다. 그래서

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="debug" monitorInterval="600"> 
    <Appenders> 
     <Console name="CONSOLE" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" /> 
     </Console> 
     <File name="web-services" fileName="web-services-log"> 
      <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" /> 
     </File> 
     <Async name="ASYNC"> 
      <AppenderRef ref="web-services" /> 
      <AppenderRef ref="CONSOLE" /> 
     </Async> 
    </Appenders> 
    <Loggers> 
     <logger name="log4j.logger.httpclient.wire.header" level="fatal" 
      additivity="false" /> 
     <Root level="debug"> 
      <AppenderRef ref="ASYNC" /> 
     </Root> 
    </Loggers> 
</Configuration> 

, 추가로 몇 가지 질문 나는 수도 경우 :

첫째, 여기에 파일 제약의 압연 또는 최대 수를 처리하지 않습니다 지금 내가 가지고있는 구성은,이다

1.) <Configuration status="log-level"><Root level="debug"> 레벨의 차이점은 무엇입니까? 루트 노드를 ERROR로 설정하고 부모 노드를 DEBUG로 설정하면 어떻게됩니까?

2.) 여러 번, 특정 패키지를 DEBUG로 설정하고 나머지 응용 프로그램은 ERROR로 설정합니다. 내가 정확히 <logger name="log4j.logger.httpclient.wire.header" level="fatal" additivity="false" />을 가지고있는 것처럼 추가 로거를 지정하여이 작업을 수행 할 수 있다는 것을 이해할 수 있습니까?

3.) 오류 및 예외뿐만 아니라 표준 첨부 파일에 대해서도 예외를 자체 파일에 저장하려면 어떻게해야합니까? 내가 읽은 것부터 예외 처리 로거는 이벤트가 손실되지 않도록 동기되어야합니다.

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-api</artifactId> 
    <version>2.0-beta9</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-core</artifactId> 
    <version>2.0-beta9</version> 
    <scope>compile</scope> 
</dependency> 

답변

2

A1 : 그것은 중요한 경우

아, 그리고 여기 내 log4j2 종속성의 치어 설정입니다. 구성 상태 레벨은 log4j 내부 상태 로그입니다. DEBUG으로 설정하면 log4j는 시작시 System.out으로 구성된 로거 및 애펜더에 대한 정보를 인쇄합니다. 구성. 제점을 판별하는 것이 유용합니다. 어떤 값을 설정하더라도 응용 프로그램 로깅에 영향을 미치지 않습니다.

A2. 구성한 모든 로거는 AppenderRef 요소가있는 대상 Appender에 연결되어야합니다. 예 :

<logger name="log4j.logger.httpclient.wire.header" level="fatal" additivity="false"> 
    <AppenderRef ref="ASYNC" /> 
</logger> 

A3. 현재 구성에서 시작하여 다른 파일 첨부기를 추가하고 "오류 파일"이라고합시다. 이제 "error-file"appender에 링크하는 레벨 ERROR의 다른 로거를 추가하십시오. 이 로거가 모든 이벤트를 볼 수 있도록하려면 응용 프로그램의 최상위 패키지 이름을 지정하십시오. 예를 들어, 응용 프로그램에서 com.mycompany.myproject.module.SomeClass 패키지를 사용하는 경우 로거 이름을 "com.mycompany.myproject"또는 "com"으로 지정할 수 있습니다. 최상위 패키지가 여러 개있는 경우 각각에 대해 ERROR 레벨 로거를 선언 할 수 있습니다.

관련 문제