我需要一个 Log4net 包装器 - 在大型应用程序中暴露给许多不同的组件。我显然想在记录时保留类和方法名称,但我会避免将类型等传递给我的包装器。

我查看了与我的非常相似的 this question,但它没有帮助。

我已经看到它在 this other question 中使用 smt 完成,如下所示:

MethodBase methodBase = new StackTrace().GetFrame(1).GetMethod();
this.log.Debug(methodBase.Name + " : " + message);

这并不理想,因为它没有使用开箱即用的 Log4Net 功能。

在我去切线并提出一些非常复杂的东西之前,我想了解人们是如何做到这一点的。任何指针(链接/资源/示例)表示赞赏!

最佳答案

我通常会添加一些这样的东西......(这是我需要的所有功能)

MethodBase.GetCurrentMethod().Name

你总是可以为 Log4Net 创建一个包装器来接受你需要的任何参数(比如 MethodBase)?

10-08 07:00