2012-05-22 32 views
9

En mi proyecto de Spring + Hibernate, estaba haciendo el registro de SLF4J 1.6.4 con LogBack. Ahora, he agregado Ehcache 2.2.0 (a través de ehcache-spring-annotations-1.1.3). El almacenamiento en caché parece estar funcionando como el método, anotado con @Cacheable, ya no se ejecuta, aunque devuelve el resultado correcto. Pero, estoy interesado en ver el registro escrito por Ehcache. Como Ehcache también usa SLF4J, supongo, el registro debe escribirse en mi archivo de registro. Pero, esto no está sucediendo. Logback.xml tiene lo siguiente.Cómo habilitar el registro de Ehcache

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

Adición siguiente también no ayuda

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

Ehcache.xml

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

favor aconsejarme para superar el problema.

El Ehcache está utilizando SLF4J 1.6.1, mientras que mi proyecto estaba utilizando SLF4J 1.6.4. ¿Puede causar algún problema?

Gracias

+0

Me acabo de enterar que ehcache no registra todo lo que esperaba. Entonces, ¿has buscado ehcache si realmente registra cosas que esperas? – codesmith

Respuesta

44

Ehcache registra una gran cantidad de DEBUG nivel. En primer lugar, este fragmento de configuración filtra todas las declaraciones de registro a continuación INFO:

<root level="info"> 

cambiarlo a

<root level="ALL"> 

En segundo lugar

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

necesita un nivel de registro de aumento de

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

Debería ver muchas declaraciones de registro de EhCache (y otras).

+0

Gracias Tomasz. Tus soluciones funcionan – Tamim

+3

este momento no tienen la reputación suficiente para votar hasta :) – Tamim

+0

Puede alguien por favor, eche un vistazo a la búsqueda que he publicado: http://stackoverflow.com/questions/41734999/spring-framework-application-properties-vs-logback- xml – user18853

5

También me pareció práctico habilitar el registro DEBUG en org.springframework.cache porque estoy usando la función de caché de Spring Framework 4.2.1 (@Cacheable etc.).

+0

significa eso modificado esta línea en application.properties: "logging.level.org.springframework.cache: DEBUG" sí – user18853

+0

que funcionaría, pero hay otros [maneras de lograr que así] (https: // docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html). – ben3000

5

En mi opinión, establecer el nivel del registrador de raíz en ALL no es una buena idea.

Esto significa que ALL mensajes de registro de todos los niveles se obtendrán (a menos que establezca un umbral en sus appenders).

En su lugar, le sugiero que configure un nivel razonable de registrador de raíz, como INFO o , y luego configure el nivel de registro de los registradores individuales si necesita información más específica.

De esta manera no está creando un bosque de información innecesaria.

me sugieren algo como el siguiente:

<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> 

Cuestiones relacionadas