1

我已经使用 Log4net 实现了一个 CustomAppender。如何从 Appender 中的 patternLayout 访问 Layout 属性。

  public class CutomAppender : AppenderSkeleton
{
     protected override void Append(LoggingEvent loggingEvent)
    {
      //My custom code here...........
    }
}

配置文件:

<log4net>
 <appender name="CutomAppender" type="log4netCustomAppender.CutomAppender,log4netCustomAppender">   
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
  </layout>
 </appender>
 <root>                                                                               
<level value="ALL" />
<appender-ref ref="CutomAppender" />
 </root>
</log4net>
4

1 回答 1

1

要获取 Layout 信息,只需使用基础 AppenderSkeleton 类的 Layout 属性。要获取已在此布局中呈现的消息,请使用同一基类中的 RenderLoggingEvent 方法:

public class CutomAppender : AppenderSkeleton
{
    protected override void Append(LoggingEvent loggingEvent)
    {
        string renderedMessage = base.RenderLoggingEvent(loggingEvent);
        ILayout layout = base.Layout;
        // do something here
    }
}
于 2017-04-10T13:35:13.083 回答