利用spring写日志

xiaoxiao2023-09-19  12

想在项目里面使用log4j做日志的记录,但现在需要写日志的类很多,而且写日志的代码都是雷同的,所以就利用spring的aop来完成写日志的任务。 首先,需要将log4j先配置好在web.xml中加入解析器servlet的配置 <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value></context-param><servlet> <servlet-name>log4j</servlet-name> <servlet-class> org.springframework.web.util.Log4jConfigServlet </servlet-class> <load-on-startup>2</load-on-startup></servlet><listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> 之后,由于我项目当中配置了大量的service类,类名都以Service结尾,为了方便配置使用spring当中的BeanNameAutoProxyCreator类进行aop配置。 在spring配置文件中配置如下: <bean class="cn.aresoft.fw.log.LoggerAdvice" id="loggerAdvice"/> <bean class= "org.springframework.aop.framework .autoproxy.BeanNameAutoProxyCreator" ><!-- 始终以CGLib技术动态代理--><!-- <property name="optimize"><value>true</value></property> --><!-- 配置开关 这句不加getBean()方法获得bean是会报类型转换异常--> <property name="proxyTargetClass"><value>true</value></property> <property name="interceptorNames"> <list> <value>loggerAdvice</value> </list> </property> <property name="beanNames"> <list> <value>*Service</value> </list> </property></bean> 再来就是写Advice类了也就是配置中的LoggerAdvice,代码如下: public class LoggerAdvice implements MethodBeforeAdvice, AfterReturningAdvice,ThrowsAdvice {public void before(Method method, Object[] args, Object target)throws Throwable { Logger logger = Logger.getLogger(target.getClass()); logger.debug("+Class : "+ target.getClass().getName()); logger.debug("+Method : "+ method.getName()); }public void afterReturning(Object retuVal, Method method, Object[] args,Object target) throws Throwable { Log log = LogFactory.getLog(target.getClass()); //do log }public void afterThrowing(Method method,Object[] args, Object target,Exception ex){ Logger logger = Logger.getLogger(target.getClass()); logger.error("数据处理时发生异常",ex); }} 相关资源:SpringMVC 写操作日志
转载请注明原文地址: https://www.6miu.com/read-5008886.html

最新回复(0)