Java 如何从Log4j中过滤特定异常?

Java 如何从Log4j中过滤特定异常?,java,hibernate,filter,log4j,java-8,Java,Hibernate,Filter,Log4j,Java 8,我正在我的桌面应用程序上实现Java8的一些新功能,Hibernate3.6似乎不喜欢它 我在一个接口中添加了一个“默认方法”,然后将其休眠: 2014-10-02 14:01:25,538 WARN entity.PojoEntityTuplizer - could not create proxy factory for:modelo.ChequeTercero org.hibernate.HibernateException: Javassist Enhancement failed:

我正在我的桌面应用程序上实现Java8的一些新功能,Hibernate3.6似乎不喜欢它

我在一个接口中添加了一个“默认方法”,然后将其休眠:

2014-10-02 14:01:25,538 WARN entity.PojoEntityTuplizer  - could not create proxy factory for:modelo.ChequeTercero
org.hibernate.HibernateException: Javassist Enhancement failed: modelo.ChequeTercero
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:169)
at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65)
Caused by: java.lang.VerifyError: (class: modelo/ChequeTercero_$$_javassist_45, method: _d21getNumeroValor signature: ()Ljava/lang/String;) Illegal use of nonvirtual function call
对于实现接口的每个类,乘以接口中的每个默认方法

由于此日志是
级别的.WARN
,因此每次用户打开应用程序时,它都会在用户上生成BIIIIG日志文件

我尝试制作一些记录器过滤器,但不起作用:

<filter class="org.hibernate.proxy.pojo.BasicLazyInitializer">
<param name="LevelMin" value="FATAL" />
<param name="LevelMax" value="FATAL" />
    </filter>
<filter class="org.apache.log4j.filter.ExpressionFilter">
        <param name="expression" value="EXCEPTION ~= org.hibernate.proxy.pojo.BasicLazyInitializer"/>
        <param name="acceptOnMatch" value="false"/>
    </filter>
    <filter class="org.apache.log4j.varia.StringMatchFilter">
        <param name="StringToMatch" value="org.hibernate.HibernateException: Javassist Enhancement failed"/>
        <param name="AcceptOnMatch" value="false" />
    </filter>
    <!--<filter class="org.apache.log4j.varia.DenyAllFilter"/> -->


我做错了什么?另外,如果我取消注释
DenyAllFilter
则不再显示任何日志。

使用log4j 1.2,我可以使用附录中的

<appender name="LOGFILE" class="com.me.RollingFileAppender">
    <param name="File" value="..." />
    ...
    <layout .../>
    <!-- Exclude expected exceptions -->
    <filter class="org.apache.log4j.filter.ExpressionFilter">
        <param name="Expression" value="EXCEPTION ~= 'String found in the exception message'"/>
        <param name="AcceptOnMatch" value="false"/>
    </filter>
</appender>

我找到了解决方案-

下面是相关的log4j2.x配置,它允许我从日志文件和控制台附件中排除特定消息