积极答复者
关于用户行为跟踪问题的解决方案

问题
答案
-
这当然可以,可我不想大量改动原有的代码,因为需要记录日志的地方很多。我有一个思路,因为要记录的都是业务层的方法调用信息,如果能在业务层的任一个方法被调用的同时来记录信息是最好的了,但是怎么捕捉到一个类的方法被调用呢?
您好,据我所知是没有不改动现有的类层次关系就能达到您的目的。我曾经也留意过相似的需求(在微软的国外论坛也留意过),目前得到的方法有两种:
1、利用反射来动态Emit,来创建一个新的类,例如Spring.net的AOP就是采用这个方法
2、利用上下文来加载代理,但要求类是继承ContextBoundObject。
以上作为参考,希望有帮助!- 已标记为答案 YiChun Chen 2009年9月24日 2:14
-
log4net是很成熟的这样的工具
可以参考下咯
恭喜自己5星用户达成- 已建议为答案 Raymond TangModerator 2009年9月15日 11:06
- 已标记为答案 韦恩卑鄙 waywaModerator 2009年9月24日 16:25
-
是不是可以考虑用继承的方法,关键请求都从一个基类派生,基类实现记录的功能,派生类提供需要记录的数据。
- 已标记为答案 韦恩卑鄙 waywaModerator 2009年9月24日 16:25
-
感谢,我已经找到解决办法了,与你说的应该是相同思路,使用PostSharp,他动态添加IL代码,达到我们的目的,对原有代码改动量很少。
- 已标记为答案 YiChun Chen 2009年9月24日 2:14
全部回复
-
大家好,我想在项目中加入一个跟踪器,它会自动记录用户登录后的所有行为,例如进入那个页面、点击了什么按钮(或者说执行了什么方法),如果我不想再每个功能里加入日志来记录,请问有什么方便的办法解决这个问题,类似于一种过滤器,把用户和服务器的所有交互都记录下来。
- 已合并 肖小勇Moderator 2009年9月15日 9:58
-
log4net是很成熟的这样的工具
可以参考下咯
恭喜自己5星用户达成- 已建议为答案 Raymond TangModerator 2009年9月15日 11:06
- 已标记为答案 韦恩卑鄙 waywaModerator 2009年9月24日 16:25
-
是不是可以考虑用继承的方法,关键请求都从一个基类派生,基类实现记录的功能,派生类提供需要记录的数据。
- 已标记为答案 韦恩卑鄙 waywaModerator 2009年9月24日 16:25
-
这当然可以,可我不想大量改动原有的代码,因为需要记录日志的地方很多。我有一个思路,因为要记录的都是业务层的方法调用信息,如果能在业务层的任一个方法被调用的同时来记录信息是最好的了,但是怎么捕捉到一个类的方法被调用呢?
您好,据我所知是没有不改动现有的类层次关系就能达到您的目的。我曾经也留意过相似的需求(在微软的国外论坛也留意过),目前得到的方法有两种:
1、利用反射来动态Emit,来创建一个新的类,例如Spring.net的AOP就是采用这个方法
2、利用上下文来加载代理,但要求类是继承ContextBoundObject。
以上作为参考,希望有帮助!- 已标记为答案 YiChun Chen 2009年9月24日 2:14
-
感谢,我已经找到解决办法了,与你说的应该是相同思路,使用PostSharp,他动态添加IL代码,达到我们的目的,对原有代码改动量很少。
- 已标记为答案 YiChun Chen 2009年9月24日 2:14