如何從登錄的aspectj中排除特定異常?從日誌中排除例外
我們使用spring安全性,所以我們實現了UserDetailsService。 當用戶輸入不存在的用戶名時,彈出org.springframework.security.core.userdetails.UsernameNotFoundException
。我們想從日誌中排除該特定的異常,但不是它從中拋出的類(UserDetailsService的實現)。例如在下面的日誌中,我們只需要第一行(輸入... UserDetailsServiceImpl),而不是後面的錯誤。
22 Jun 2014 14:20:35 INFO LoggingAspect - Entering: ...UserDetailsServiceImpl Method name: loadUserByUsername Method arguments : [***]
22 Jun 2014 14:20:42 ERROR LoggingAspect - Unhandled exception caught: ...service.UserDetailsServiceImpl loadUserByUsername
org.springframework.security.core.userdetails.UsernameNotFoundException: User with loginName: *** doesnt exist
at ...UserDetailsServiceImpl.loadUserByUsername(UserDetailsServiceImpl.java:30)
...
有沒有辦法做到這一點春季AOP?
編輯: 這是我們在LoggingAspect:
@AfterThrowing(pointcut = "execution(* ..*.*(..)) && !methodsExcludedFromLog()", throwing = "exp")
public void afterThrowing(JoinPoint joinPoint, Throwable exp) {
...
}
我這個,我需要以某種方式改變throwing
排除春季例外,但我不知道該怎麼做。
編輯2: 所以正如在評論中所建議的,我嘗試在log4j中添加一個過濾器,但它似乎不工作,並且異常不會被過濾掉。任何人都知道問題可能是什麼?
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n" />
</layout>
</appender>
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="file" value="${catalina.home}/logs/MYAPP.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" />
</layout>
<filter class="org.apache.log4j.filter.ExpressionFilter">
<param name="expression" value="EXCEPTION ~= org.springframework.security.core.userdetails.UsernameNotFoundException" />
<param name="acceptOnMatch" value="false"/>
</filter>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="consoleAppender" />
<appender-ref ref="fileAppender" />
</root>
謝謝。
你能分享你的源代碼和配置並解釋你的請求嗎? –
看我的編輯。現在更清楚了嗎? – Ayelet
爲什麼要使用AOP?如果您有像Logback這樣的良好日誌記錄軟件包,則可以實施過濾器來排除不需要的消息。 http://logback.qos.ch/manual/filters.html – Bart