求一个关于记录日志的思路

jun518222 2009-08-25 09:04:25
我想实现下面这样一个功能,但是一时没有思路:当我一个用户登录进系统以后,我想记录这个当前用户在系统中做的所有操作,如删除资源,登录,修改权限等,(不要说在每个地方都写一段语句插入日志哦,那样维护太麻烦啦)
...全文
60 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liurui1129 2009-08-27
  • 打赏
  • 举报
回复
网上关于aop的资料很多
lijun518223 2009-08-25
  • 打赏
  • 举报
回复
楼上的朋友能说得详细一点嘛
aop如何实现
herowzz 2009-08-25
  • 打赏
  • 举报
回复
aop
lijing0511 2009-08-25
  • 打赏
  • 举报
回复
切面:
package com.hundsun.fund.website.webapp.log;

import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;

public class UserOprationLog {

protected Logger logger = Logger.getLogger("WEBAPP");

public void userLog(ProceedingJoinPoint pjp){
Object obj[] = pjp.getArgs();
String paremeters = "";
for(int i = 0; i < obj.length; i++){
paremeters += obj[i].toString() + ",";
}
if("addUser".equals(pjp.getSignature().getName())){
logger.info("添加用户:" + pjp.getSignature().getName() + "(" +paremeters + ")");
}
//System.out.println("user action");
}

}

applicationContext.xml:
<!-- 配置日志AOP begin -->
<bean id="userLog" class="com.hundsun.fund.website.webapp.log.UserOprationLog" />
<bean id="systemLog" class="com.hundsun.fund.website.webapp.log.SysExceptionLog" />
<aop:config proxy-target-class="true">
<!-- 用户操作日志切面 -->
<aop:aspect ref="userLog" id="userLogAspect">
<aop:pointcut id="userLogPointcut" expression="execution(* com.hundsun.fund.website.webapp.dao.user.*.*(..))"/>
<aop:after-returning pointcut-ref="userLogPointcut" method="userLog" />
</aop:aspect>
<!-- 系统异常日志切面 -->
<aop:aspect ref="systemLog" id="systemLogAspect">
<aop:pointcut id="systemLogPointcut" expression="execution(* com.hundsun.fund.website.webapp.dao.*.*.*(..))"/>
<aop:after-throwing pointcut-ref="systemLogPointcut" method="systemLog" throwing="e"/>
</aop:aspect>
</aop:config>
<!-- 配置日志AOP end -->

参考下这个吧

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧