log4net没有记录方法名称

时间:2016-09-09 06:39:35

标签: c# asp.net log4net

我已按如下方式设置log4net:

AssemblyInfo.cs

[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"App_Data\log4net.config", Watch = true)]

转换模式是:

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="{%level}%date{dd/MM/yyyy HH:mm:ss} - %C{1}.%M - %message%newline" />
</layout>

记录器被实例化为:

logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

我也尝试过:

logger = LogManager.GetLogger(Assembly.GetCallingAssembly(), "root");

但是,未记录调用方法名称。

我错过了什么?

修改

正在创建记录器,如下所示:

logger = LogManager.GetLogger(typeof(LogService));

转换模式如上所述。日志输出为:

  

14/09/2016 13:11:13 INFO - MyController + d__4.MoveNext - 调用NonActionMethod

     

14/09/2016 13:11:13 DEBUG - MyController + d__7`1.MoveNext - Begin ...

是否可以将格式更改为:

  

myController的。

1 个答案:

答案 0 :(得分:0)

您只获得了类型名称为

的记录器
 LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

您可以使用以下命令获取名称:MethodBase.GetCurrentMethod()。Name

 LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType+"."+MethodBase.GetCurrentMethod().Name);