spring aop管理日志 求spring aop日志管理的源码,主要是能在spring aop里面能取得用户信息,自己做了一个老出错,困扰了好久了,发帖也没人帮助解决,所以只能厚着脸皮要了,本人是学生,没有用于商业用途,哪位朋友能给我一份吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JoinPoint当作参数传入切面的方法应该可以拿到.. 我是用filter threadlocal取得session 如何在aop里面取 可是老报空,发帖了也没人知道原因,自己又没办法测试,电脑配置太低,所以有做过的朋友 能发份给我吗? 你是不是写了一个aop 在里面拿不到session 的用户信息是这样吗如果是,那么传过去,用aop 拦就可以了吗不传得不到滴哦 http://book.csdn.net/bookfiles/250/10025011349.shtml 之前的帖子在这里http://topic.csdn.net/u/20100109/12/84806d39-0a1c-4dbe-ad66-61f44dd9aa0a.html http://book.csdn.net/bookfiles/250/10025011349.shtml这里面应该可以找到你要的答案 去看看吧 拦截动作的aop日志是非常经典的应用,4星上将。 我的配置很简单:<aop:aspectj-autoproxy/><bean id="logbean" class="com.shop.spring.LogAOP"/>在AOP里面有用到注解,应该是没有问题的,还缺什么吗 你finnaly里面不是清空了吗所以只有第一次拦截方法会有信息,在第二次进入拦截方法时,就没有把finnaly删了吧看是这个意思不 不好意思 呼没看清楚,以为是一个Servlet,没看到是过滤器这样是有必要清代码没测试,等下有时间测试下, 如果在方法的开始和结束整个日志,那方法中呢?如果方法中没有日志的话,那就完全失去了日志的意义!另外,所有介绍 AOP 的地方都以日志作为示例,其实这是一个很牵强的示例,没有人会只在方法的开始和结束,或者是异常三处整个日志。日志在应用程序中是非常非常重要的,好的日志信息能有助于我们在程序出现 BUG 时能快速进行定位,并能找出其中的原因,但是很多的开发人员很不重视日志。我发觉很多很多的开发人员不会使用日志,其所称的日志一般都是这样的:public User processUser(User user) { log.debug("processUser() start..."); try { processUser 代码 } catch (Exception e) { log.error("processUser() failed.", e); } log.debug("processUser() end.");}这样的日志写了跟没写一样,没有丝毫的用处! 对于 DEBUG 级别的日志来说,是越多越好,越详细越好。另外建议使用 slf4j 日志框架,其中的 log4j 的适配器。slf4j 可以使用可变参数,我们不需要在代码中出现:if(log.isDebugEnabled()) { log.debug("user: " + user);}样的代码。因为 log.debug 中涉及字符串连接操作,大家都知道字符串是不可变对象,内部会使用 StringBuffer 或者 StringBuilder 进行处是的。如果我们把日志调高到 INFO 的话,那些 log.debug 方法参数同样会被运算出来,但是这种运算是毫无意义的,因此我们会在外面加上:if(log.isDebugEnabled()) 这个判断。如果使用变参,由于不涉及字符串连接操作,因此就不需要这样的判断。public User processUser(User user) { log.debug("processUser() start, user: {}" + user); try { processUser 代码 // 这里应加入大量的 log.debug 日志 log.info("......"); // 处理完后的结果应使用 INFO 级别,内容应为处理后的 User 对象的数据 } catch (Exception e) { log.error("processUser() failed.", e); // 异常时应使用 WARN 以上的级别,如果还有其他的方法调用上下文信息应一起写入日志 } log.debug("processUser() end."); // 这个日志没有丝毫用处,可以删除 }以上的 User 必须实现 toString() 方法,其中应包自身全部或者主要的字段名和字段值。 log.debug("processUser() start, user: {}" + user);改为:log.debug("processUser() start, user: {}", user); 你的方法和spring security很类似,建议可以去看源码,我这边有分自己做的,不过功能很简单,可以给你 请问java 过滤器 post方式的数据,我怎么修改,然后传过去? 一个简单问题,想不通-怎样把页面上获得的三个值存入数据库的一个字段中。 如何对几个不同的数据库同时做事务处理 freemarker模板中实现div包含元素的显示与隐藏 如何把MyEclipse的工作区直接建立到JBOSS目录底下 ws部署weblogic9,上传文件出错 webwork2——最优雅的框架技术! JBOSS配置帮忙看看,真是急啊! 急!怎样实现jsp与php的通信? 高分请教,关于james和 jmail 怎么知道一个类是在哪个jar包里呢 求教struts2的文件下载问题?
不传得不到滴哦
拦截动作的aop日志是非常经典的应用,4星上将。
<aop:aspectj-autoproxy/>
<bean id="logbean" class="com.shop.spring.LogAOP"/>
在AOP里面有用到注解,应该是没有问题的,还缺什么吗
看是这个意思不
不好意思 呼
没看清楚,以为是一个Servlet,没看到是过滤器
这样是有必要清
代码没测试,等下有时间测试下,
如果在方法的开始和结束整个日志,那方法中呢?如果方法中没有日志的话,那就完全失去了日志的意义!另外,所有介绍 AOP 的地方都以日志作为示例,其实这是一个很牵强的示例,没有人会只在方法的开始和结束,或者是异常三处整个日志。日志在应用程序中是非常非常重要的,好的日志信息能有助于我们在程序出现 BUG 时能快速进行定位,并能找出其中的原因,但是很多的开发人员很不重视日志。我发觉很多很多的开发人员不会使用日志,其所称的日志一般都是这样的:public User processUser(User user) {
log.debug("processUser() start...");
try {
processUser 代码
} catch (Exception e) {
log.error("processUser() failed.", e);
}
log.debug("processUser() end.");
}这样的日志写了跟没写一样,没有丝毫的用处!
log.debug("user: " + user);
}样的代码。因为 log.debug 中涉及字符串连接操作,大家都知道字符串是不可变对象,内部会使用 StringBuffer 或者 StringBuilder 进行处是的。如果我们把日志调高到 INFO 的话,那些 log.debug 方法参数同样会被运算出来,但是这种运算是毫无意义的,因此我们会在外面加上:if(log.isDebugEnabled()) 这个判断。如果使用变参,由于不涉及字符串连接操作,因此就不需要这样的判断。public User processUser(User user) {
log.debug("processUser() start, user: {}" + user);
try {
processUser 代码 // 这里应加入大量的 log.debug 日志
log.info("......"); // 处理完后的结果应使用 INFO 级别,内容应为处理后的 User 对象的数据
} catch (Exception e) {
log.error("processUser() failed.", e); // 异常时应使用 WARN 以上的级别,如果还有其他的方法调用上下文信息应一起写入日志
}
log.debug("processUser() end."); // 这个日志没有丝毫用处,可以删除
}以上的 User 必须实现 toString() 方法,其中应包自身全部或者主要的字段名和字段值。