복붙노트

[SPRING] Ehcache의 로깅을 설정하는 방법

SPRING

Ehcache의 로깅을 설정하는 방법

내 Spring + Hibernate 프로젝트에서, 나는 LogBack으로 SLF4J 1.6.4에 의한 로깅을하고 있었다. 이제 Ehcache 2.2.0을 추가했습니다 (ehcache-spring-annotations-1.1.3을 통해). 캐싱은 @Cacheable 주석이 붙은 메소드가 더 이상 실행되지 않고 올바른 결과를 반환하기 때문에 작동하는 것으로 보입니다. 그러나 Ehcache가 작성한 로그를 보는 데 관심이 있습니다. Ehcache도 SLF4J를 사용하기 때문에 로그 파일에 로그를 기록해야합니다. 그러나 이것은 일어나지 않습니다. logback.xml은 다음과 같습니다.

 <root level="info">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="ROLLING"/>
</root>

다음을 추가해도 도움이되지 않습니다.

 <logger name="net.sf.ehcache"> 
</logger> 

Ehcache.xml

    <cache name="sampleCache1"
       eternal="false"
       overflowToDisk="true"
       timeToIdleSeconds="300"
       timeToLiveSeconds="600"           
       memoryStoreEvictionPolicy="LFU"           
        />

문제를 극복하도록 조언 해주세요.

내 프로젝트가 SLF4J 1.6.4를 사용하는 동안 Ehcache는 SLF4J 1.6.1을 사용하고 있습니다. 어떤 문제가 발생할 수 있습니까?

감사

해결법

  1. ==============================

    1.EhCache는 DEBUG 레벨에서 많은 것을 기록합니다. 우선,이 구성 스 니펫은 INFO 아래의 모든 로깅 구문을 필터링합니다.

    EhCache는 DEBUG 레벨에서 많은 것을 기록합니다. 우선,이 구성 스 니펫은 INFO 아래의 모든 로깅 구문을 필터링합니다.

    <root level="info">
    

    그것을 다음으로 변경하십시오.

    <root level="ALL">
    

    둘째로

    <logger name="net.sf.ehcache">
    

    증가 된 로깅 수준 필요

    <logger name="net.sf.ehcache" level="ALL"/> 
    

    그런 다음 EhCache (및 기타)의 많은 로깅 구문을보아야합니다.

  2. ==============================

    2.제 생각에는 루트 로거 레벨을 ALL로 설정하는 것은 좋은 생각이 아닙니다.

    제 생각에는 루트 로거 레벨을 ALL로 설정하는 것은 좋은 생각이 아닙니다.

    이는 모든 레벨의 모든 로그 메시지가 통과한다는 것을 의미합니다 (appender에 임계 값을 설정하지 않은 경우).

    대신 INFO 또는 WARN과 같은 적절한 루트 로거 수준을 설정 한 다음 특정 정보가 더 필요하면 개별 로거의 로그 수준을 설정하는 것이 좋습니다.

    이렇게하면 불필요한 정보가 포함 된 포리스트가 생성되지 않습니다.

    나는 아래와 같이 제안한다.

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
      <param name="Target" value="System.out"/> 
      <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
      </layout>  
    </appender> 
    
    <logger name="net.sf.ehcache">
      <level value="DEBUG"/>
    </logger>
    
    <root> 
      <priority value ="INFO" /> 
      <appender-ref ref="CONSOLE" /> 
    </root>
    

  3. ==============================

    3.또한 Spring Framework 4.2.1의 캐싱 기능 (@Cacheable 등)을 사용하기 때문에 org.springframework.cache에서 DEBUG 로깅을 사용하는 것이 편리하다는 것을 알았습니다.

    또한 Spring Framework 4.2.1의 캐싱 기능 (@Cacheable 등)을 사용하기 때문에 org.springframework.cache에서 DEBUG 로깅을 사용하는 것이 편리하다는 것을 알았습니다.

  4. from https://stackoverflow.com/questions/10705107/how-to-enable-logging-of-ehcache by cc-by-sa and MIT license