2012-05-22 546 views
9

在我的Spring + Hibernate项目中,我使用LogBack进行了SLF4J 1.6.4的日志记录。现在,我添加了Ehcache 2.2.0(通过ehcache-spring-annotations-1.1.3)。缓存似乎是作为方法工作的,用@Cacheable注释,不再被执行,虽然返回了正确的结果。但是,我很想看看Ehcache写的日志。由于Ehcache也使用SLF4J,所以我应该把日志写入我的日志文件中。但是,这没有发生。 logback.xml具有以下内容。如何启用Ehcache的日志记录

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

请告诉我要克服的问题。

Ehcache使用SLF4J 1.6.1,而我的项目使用SLF4J 1.6.4。它会导致任何问题吗?

感谢

+0

我刚刚发现的Ehcache不记录一切,我的预期。那么,如果它真的记录了你期望的东西,你有没有看过ehcache? – codesmith

回答

44

的Ehcache登录DEBUG水平很多。首先,这个配置片断筛选出所有的日志声明如下INFO

<root level="info"> 

将其更改为

<root level="ALL"> 

其次

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

需要增加日志记录级别

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

然后您应该看到来自EhCache(和其他人)的大量日志记录。

+0

感谢Tomasz。你的解决方案有效 – Tamim

+3

对不起,没有足够的声望投票:) – Tamim

+0

有人可以请看看我张贴的任务:http://stackoverflow.com/questions/41734999/spring-framework-application-properties-vs-logback- xml – user18853

5

我还发现它很方便启用org.springframework.cache上的DEBUG日志记录,因为我使用了Spring Framework 4.2.1的缓存功能(@Cacheable等)。

+0

是否意味着将此行添加到application.properties中: “logging.level.org.springframework.cache:DEBUG” – user18853

+0

是的,它可以工作,但也有[其他方法可以完成它](https:// docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html)。 – ben3000

5

在我看来,将根记录器级别设置为ALL不是一个好主意。

这意味着ALL每个级别的日志消息都会通过(除非您在appender上设置了阈值)。我建议你设置一个合理的根记录器级别,如INFOWARN,然后设置单个记录器的日志级别,如果您需要更多特定信息。

这样你就不会创建一个不必要的信息森林。

我建议是这样的下面:

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