记录方法或类名总是写Common.Logging方法
我将 log4net 与 .NET Common.Logging 结合使用。我配置了一个消息模式来包含方法和类名称,如下所示:
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level [%M %C] - %message%newline" />
</layout>
问题是我总是得到 Common.Logging 方法和类的名称:
FATAL [Fatal Common.Logging.Factory.AbstractLogger] - log message
INFO [Info Common.Logging.Factory.AbstractLogger] - log message
DEBUG [Debug Common.Logging.Factory.AbstractLogger] - log message
它是最无用的。有没有办法打印我的方法名称?
I'm using log4net with .NET Common.Logging. I configured a message pattern to include method and class name like so:
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level [%M %C] - %message%newline" />
</layout>
The problem is I always get the name of the Common.Logging method and class:
FATAL [Fatal Common.Logging.Factory.AbstractLogger] - log message
INFO [Info Common.Logging.Factory.AbstractLogger] - log message
DEBUG [Debug Common.Logging.Factory.AbstractLogger] - log message
It is most unuseful. Is there a way of printing my method name?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为你需要修改 Common.Logging。在文件 Log4NetLogger.cs 中,将以下行替换
为
This 应该可以解决问题。 这里是一些解释为什么这应该有效。
I think you need to modify Common.Logging. In the file Log4NetLogger.cs replace the following line
with
This should do the trick. Here is some explanation why this should work.
此格式适用于我的配置
我的记录器被定义为
我使用这些未修改的 dll
更新:
在日志消息中,我将方法名称作为文本添加到日志记录调用中,因此分析调用堆栈以获取方法名称没有性能开销。
This format works with my config
My logger is defined as
I use these unmodified dlls
Update:
In the logging messages i add the methodname into the logging call as text so i have no performance overhead with analysing the call stack to get the methodname.