spring aop + log4j如何实现详细的后台操作日志,并输出的数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring aop + log4j如何实现详细的后台操作日志,并输出的数据库相关的知识,希望对你有一定的参考价值。

比如会员修改功能,后台使用人员或者操作后台人某某某修改了某某某会员的性别男为女 ,这个细粒度的日志怎么能实现, 用的是struts+spring+ibatis的框架,切面应该定义在service层还是dao层呢?然后具体功能应该怎么实现?

你可以采用logback 这个插件,可以任意切入哪个类,可以控制日志的级别。如果是业务操作日志最好是定义在Service层,DAO层就不要写业务了。
logback相比较log4j的优势
slf4j支持参数化的logger.error("帐号ID:不存在", userId);
告别了if(logger.isDebugEnable()) 时代。
另外logback的整体性能比log4j也较佳,hibernate等项目已经采用了slf4j。追问

那请问ibatis可以使用吗?还有就是具体的操作,比如给service传入一个会员的POJO,其中比如要修改ID为1的用户密码,从原密码123,修改为456,,这个会员的po中就会放入两个属性一个是string的密码456,一个是id属性,其他属性不用管,既为null,比如说service方法成功执行以后,现在需要用到AOP,将这个service操作的具体信息拼接出来写入日志数据库,比如说将某ID的用户密码从123修改为了456,这个怎么才能实现~!请指教谢谢!

追答

Object[] args=123,456;
logger.debug("某ID的用户密码从修改为了",args);
这样写你看得懂吗?

追问

我现在切面只能反射到POJO对象,得不到其中的属性,比如ID或者password属性

参考技术A 这也算业务吧,放在service层吧。
我的思路是这样的:在完成修改性别这个操作之后,可以自定义一个日志,传入当前操作管理员Id或名称以及前面操作对象的ID或名称,进行日志打印。
嘿嘿 具体内容我也不太会!

spring的aop详细实现

https://www.cnblogs.com/liantdev/p/10125284.html

 

多个aop类可以实现顺序,通过类上的@order.需要纠正的是  越小就先执行

https://blog.51cto.com/4837471/2326708

 

获得aop请求方法上的注解

https://www.jianshu.com/p/f5c7417a75f9

以上是关于spring aop + log4j如何实现详细的后台操作日志,并输出的数据库的主要内容,如果未能解决你的问题,请参考以下文章

log4j +spring aop+自定义注解方式输出日志

spring的aop详细实现

Spring基础IOC(控制反转)AOP(面向切面编程)Log4j注解配置

Spring框架中利用AOP实现简单的日志管理

Logback+Spring-Aop实现全面生态化的全链路日志追踪系统服务插件「SpringAOP 整合篇」

Spring第二天——IOC注解操作与AOP概念