使用Spring Boot禁用AppClassLoader AspectJ日志记录

时间:2019-05-14 13:42:21

标签: java spring spring-boot aspectj

我的问题与以下问题非常相似:Suppressing logs from AppClassLoader

区别在于我正在使用带有Spring Boot的AspectJ(通过@EnableAspectJAutoProxy@EnableLoadTimeWeaving(aspectjWeaving = ENABLED)批注),所以我既没有META-INF/aop.xml,也没有META-INF/aop-ajc.xml文件,在答案中被提到。

如何使用基于注释的配置禁用这些烦人的AppClassLoader警告?

更新 为了澄清起见,我在谈论这种日志:

...
[AppClassLoader@18b4aac2] error can't determine implemented interfaces of missing type org.springframework.cache.ehcache.EhCacheCacheManager
when weaving type org.springframework.boot.autoconfigure.cache.EhCacheCacheConfiguration
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[AppClassLoader@18b4aac2] error can't determine implemented interfaces of missing type org.springframework.cache.ehcache.EhCacheCacheManager
when weaving type org.springframework.boot.autoconfigure.cache.EhCacheCacheConfiguration
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[AppClassLoader@18b4aac2] error can't determine implemented interfaces of missing type org.springframework.cache.ehcache.EhCacheCacheManager
when weaving type org.springframework.boot.autoconfigure.cache.EhCacheCacheConfiguration
when weaving classes 
when weaving 
...

它们以红色打印,并且有很多。因此,我想以某种方式禁止显示这些日志。

1 个答案:

答案 0 :(得分:1)

为了在使用AspectJ加载时编织时抑制某些AspectJ编译器消息,您可以执行以下操作。

将文件aspectjweaver.jar!/org/aspectj/weaver/XlintDefault.properties的副本创建到名称为{{1}的resources/META-INF文件夹中。

更改行

Xlint.properties

cantFindType = error

然后,按如下所示在cantFindType = ignore 文件夹中创建aop.xml,或将相应的选项添加到resources/META-INF条目中,如下所示:

<weaver>

现在,您应该取消<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd"> <aspectj> <weaver options="-Xlintfile:META-INF/Xlint.properties" /> </aspectj> 错误,但其他AspectJ消息却没有得到解决。您可以类似地更改其他linter消息的报告。