从AppClassLoader中抑制日志

时间:2014-08-02 07:41:50

标签: java spring aop aspectj spring-aop

我在控制台应用程序中使用spring-instrument java代理进行加载时编织。应用程序以这种方式启动:

java -javaagent:/path/spring-instrument-4.0.5.RELEASE.jar -classpath ... com.my.MainClass --argument

它工作正常,但它很好地在stdout中打印这些补充消息,我想避免:

[AppClassLoader@24dbf79d] info AspectJ Weaver Version 1.8.1 built on Saturday Jun 21, 2014 at 00:07:06 GMT
[AppClassLoader@24dbf79d] info register classloader sun.misc.Launcher$AppClassLoader@24dbf79d
[AppClassLoader@24dbf79d] info using configuration file:/path/my.jar!/META-INF/aop.xml
[AppClassLoader@24dbf79d] info register aspect org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect
[AppClassLoader@24dbf79d] info register aspect org.springframework.scheduling.aspectj.AnnotationAsyncExecutionAspect
[AppClassLoader@24dbf79d] info register aspect org.springframework.transaction.aspectj.AnnotationTransactionAspect
[AppClassLoader@24dbf79d] info register aspect org.springframework.cache.aspectj.AnnotationCacheAspect

我尝试在命令行选项中配置log4j级别,但似乎无效:

-Dlog4j.logger.org.aspectj=off

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我不知道Spring,但是AspectJ LTW。由于编织器似乎是相同的,我猜你也可以通过META-INF/aop.xml(或META-INF/aop-ajc.xml分别)以相同的方式配置它。

也许你已经有了这样一个配置文件,却不知道它,它说的是

<weaver options="-verbose -showWeaveInfo">

如果是这样,请删除其他选项。导致你引用的内容的是-verbose。另请参阅AspectJ LTW documentation