进入和退出函数时生成自动日志 .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的主要内容,如果未能解决你的问题,请参考以下文章

linux部分命令的使用

Plotly:在地图上绘制点和线时自动进入/退出到合适的区域

VC++如何实时感知Windows系统进入和退出待机状态(附源码)

退出java程序时如何自动调用函数? [复制]

PostSharp Logging 添加 >>> 和 <<< 到方法进入/退出日志条目

编写日志条目时防止GNU Emacs退出