2011-09-14 5 views
3

부두에서 로그백 액세스를 사용하고 있습니다. 이미지 (* .jpg, * .gif)에 대한 HTTP 요청이 기록되는 것을 제외하고는 정상적으로 작동합니다. 대부분의 앱 서버는 로그를 부 풀리기 때문에 이러한 로그 레코드를 표시하지 않습니다.로그백 액세스에서 일부 요청의 로깅을 억제하는 방법?

이전의 Jetty NCSARequestLog 개체를 사용할 때 setIgnorePaths() 메서드가 작동했지만 logback RequestLogImpl에 비슷한 메서드가 없습니다.

아마도 logback-access.xml에서 필터를 사용하는 방법이있을 것입니다. 아마도 어떤 종류의 필터를 사용했을 것입니다. 누구든지 적절한 구문을 가지고 있습니까?

답변

3

여기 간단한 EvaluatorFilter 구성입니다, 당신의 펜더 내부에 복사 :

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> 
     <evaluator> 
      <expression> 
      return formattedMessage.contains(".jpg") || 
       formattedMessage.contains(".gif"); 
      </expression> 
     </evaluator> 
     <onMatch>DENY</onMatch> 
    </filter> 
    ... 

은 아마 당신은 .gif 때문에, 식을 정의해야하며, .jpg 너무 다른 로그 메시지에서 발생할 수 있습니다.

EvaluatorFilter은 다음과 같은 종속성이 필요합니다. 당신의 pom.xml에 넣어 또는 사용하지 않는 경우 클래스 경로에 추가 메이븐 :

<dependency> 
    <groupId>org.codehaus.janino</groupId> 
    <artifactId>janino</artifactId> 
    <version>2.5.16</version> 
</dependency> 

Further EvaluatorFilter documentation

관련 문제