记录应用程序块 - 记录调用者

Odd*_*Odd 2 c# logging enterprise-library application-blocks

使用Log4Net进行日志记录时,将调用日志的类放入日志文件中非常容易.我在过去发现,这使得跟踪代码并查看类中的流程变得非常容易.在Log4Net中,我在转换模式中使用%logger属性,如下所示:

<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
Run Code Online (Sandbox Code Playgroud)

这给了我想要的输出:

2008-09-19 15:40:26,906 [3132] ERROR <b>Log4NetTechDemo.Tester</b> [(null)] - Failed method

您可以从输出中看到调用日志的类是Log4NetTechDemo.Tester,因此我可以很容易地将错误追溯到该类.

在Logging Applicaton Block中,我无法通过简单的日志调用来弄清楚如何执行此操作.有谁知道怎么做?如果是这样,那么这样做的一个例子或步骤将非常有帮助.

lot*_*ime 5

将调用方法添加到LogEntry的ExtendedProperties字典中; 假设您尚未从格式化程序模板中删除ExtendedProperties标记,当然.

把这样的东西放在日志包装器中:

public void LogSomething(string msg)
{
  LogEntry le = new LogEntry { Message = msg };
  le.ExtendedProperties.Add("Called from", new StackFrame(1).GetMethod().ReflectedType);
  Logger.Write(le);
}
Run Code Online (Sandbox Code Playgroud)

在日志的末尾调用它会产生类似的结果:

Extended Properties: Called from - LAB_Demo.Tester
Run Code Online (Sandbox Code Playgroud)