代码之家  ›  专栏  ›  技术社区  ›  Odd

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

  •  2
  • Odd  · 技术社区  · 17 年前

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

    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    

    这给了我想要的输出:

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

    从输出中可以看出,调用日志的类是log4nettechdemo.tester,所以我可以很容易地将错误跟踪回该类。

    在日志应用程序块中,我无法通过一个简单的日志调用来解决这个问题。有人知道怎么做吗?如果是这样,那么一个或多个这样做的例子将非常有用。

    2 回复  |  直到 17 年前
        1
  •  5
  •   lotsoffreetime    17 年前

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

    Extended Properties: Called from - LAB_Demo.Tester
    
        2
  •  1
  •   Tom Carr    17 年前

     StackTrace trace = new StackTrace(ex, true);
     StackFrame frame = trace.GetFrame(0);