我有一个从匿名方法登录的类。我把它愚蠢到了重点......
public class SocketFlusher
{
private static readonly ILog Log = LogManager.GetLogger(typeof(SocketFlusher));
public void Flush()
{
Wait.For(timeout, () =>
{
... // work
Log.DebugFormat("{0} bytes available", socket.Available);
}
}
}
我的log4net配置很好(我已经检查了log4net debug="true"
输出,而appender 确实工作)。我的appender布局是
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%-4thread] %-5level %class{1} - %message%newline"/>
</layout>
但是,我的日志输出中有一个疯狂的自动生成的静态类。
2011-03-21 18:10:20,053 [5 ] DEBUG SocketFlusher+<>c__DisplayClass1 - 82 bytes available
我希望它说SocketFlusher
,获取此格式的正确的追随者布局是什么?
答案 0 :(得分:10)
您希望类名出现在appender输出中。你正在遵循log4net的惯用法,即将你的记录器命名为类的名称......
private static readonly ILog Log = LogManager.GetLogger(typeof($CLASSNAME$));
您希望在appender模式布局中执行的操作是包含%logger
名称模式而不是%class
模式。
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%-4thread] %-5level %logger{1} - %message%newline"/>
</layout>