利用spring写日志

想在项目里面使用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);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值