进入和退出函数时生成自动日志 .net 2.0
Posted
技术标签:
【中文标题】进入和退出函数时生成自动日志 .net 2.0【英文标题】:Generate automatic logs when entering and exiting functions .net 2.0 【发布时间】:2013-06-07 09:59:07 【问题描述】:我正在使用 .net 2.0。我想在特定类中调用方法(调用前和调用后)时生成日志。在 Enterprise Library 2.0 或 log4net 中是否可行?或者还有其他方法吗?
【问题讨论】:
【参考方案1】:最简单的方法当然是向每个方法添加代码。我假设你不想这样做。
您应该能够使用 Enterprise Library 3.0 中引入的 Policy Injection Application Block 或 Enterprise Library 4.0 中引入的 Unity Application Block 来完成此操作。我不认为 Enterprise Library 2.0 中内置了任何有用的东西。我从未使用过 log4net,但我怀疑它是否有任何有用的功能。
您还可以研究面向方面的编程工具,例如 PostSharp。
Here 是一篇关于如何使用 Unity 完成此任务的文章。
【讨论】:
+1 真正要解决的问题是如何优雅地执行进入和退出方法的任何操作。在记录方面,Enterprise Library 3.1 提供了LoggingCallHandler
来自动记录方法进入和退出信息。但是,这在使用 PIAB 的现有应用程序中是否实用取决于当前的设计。要被拦截,一个类必须从 MarshalByRefObject 继承或实现一个接口(然后只能拦截接口方法)。正如您所提到的,可能最不显眼的方法是编译时 AOP 方法,例如 PostSharp。
@Tuzo 没错,我过去曾使用 Unity 拦截方法,但我不太喜欢它对我的设计产生的影响。以上是关于进入和退出函数时生成自动日志 .net 2.0的主要内容,如果未能解决你的问题,请参考以下文章
Plotly:在地图上绘制点和线时自动进入/退出到合适的区域
VC++如何实时感知Windows系统进入和退出待机状态(附源码)