转自--dongsw
想在项目里面使用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);
}
}
分享到:
相关推荐
Spring AOP 日志管理 实例LoggingThrowsAdvice.java
上传的资料都是非常经典的,这也是我学习过程中的心得,希望大家能给我指点,也希望大家多上传资料共同学习。千万不要传空文件夹。。。
该配置文件为springboot的日志配置文件,在项目中直接可直接引用
这是一个简单的SpringMVC用aop写操作日志的例子
linux服务器,springboot,spring cloud、spring cloud alibaba等项目启动脚本 下载脚本, 1,上传脚本至jar包同级目录 2,更改脚本: jar包名称 项目文件路径 日志路径(包含日志名称) 脚本已配置好jvm优化...
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...
使用spring4.0进行用户日志的记录 这里带junit的测试跟main的测试 参考了 http://blog.csdn.net/oathevil/article/details/7288867 本代码中还包括了一个java自带注解的例子写的都非常易懂对于hellospring中第一位...
1.利用spring对实例管理 2.利用spring框架对对象实例注入 3.利用注解完成对象的创建和属性的自动注入 4.掌握AOP操作,实现增刑改查中任意一项操作增强 5.使用C3P0,jdbcTemplate模板操作...6.只有一个通讯录表和日志表
主要介绍了Spring框架实现AOP添加日志记录功能过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? 十四、spring mvc 转发与重定向 十五、spring mvc 处理ajax请求 十六、spring mvc 关于写几个配置文件的说明 ...
用jsf+ jdbc+spring 写的增删改查,包括分页、导入数据、和导出数据
SpringBatch+SpringBoot构建海量数据企业批处理系统和性能优化,...SpringBatch为我们提供了统一的读写接口、丰富的任务处理方式、灵活的事务管理及并发处理、日志、监控、任务重启与跳过等特性,功能可谓是非常强大。
spring boot启动失败,没有任何错误日志输出,只输出了如下信息:可能的原因:1、日志配置文件没有配好如果自己没有写日志配置,可能是被其他jar包中的lo
十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? 十四、spring mvc 转发与重定向 十五、spring mvc 处理ajax请求 十六、spring mvc 关于写几个配置文件的说明 ...
5 AOP:面向方面编程,我们可以把日志、安全、事务管理等服务(或功能)理解成一个“方面”,那么以前这些服务一直是直接写在业务逻辑的代码当中的,这有两点不好;首先业务逻辑不纯净,其次这些服务被很多业务逻辑...
其中包含apache的log4j记录日志信息,spring管理组件,springmvc分层,springaop配置数据库事务控制,hibernate二级缓存配置,实现了查询,用户登录注册,请求验证是否登录等基础功能Demo,基于后台测试,使用前台...
时间过的真快,转眼就一年了,没想到随手写的笔记会被这么多人浏览,不想误人子弟,于是整理了一个优化版。感谢各位同道的支持!
mappper接口方式
jar包:项目中除了使用了struts2,hibernate3.0和spring1.8以外(用spring2.0的包也可以.不能低于1.8的包.)还是用了junit,ajax,第三方的table组件.等等.所以需要下载相对应的包. 为了上传jar.我专门申请了一个网盘.所有...
概念:面向切面编程,在不改变源码的情况下对方法进行增强,抽取横切关注点(日志处理,事务管理,安全检查,性能测试等等),使用AOP进行增强,使程序员只需要关注与业务逻辑编写. 专业术语 目标Target:需要增强的类 ...