简体   繁体   中英

How to get Layout property from Custom appender(Log4net)?

I have implemented a CustomAppender using Log4net .How can I access Layout property from patternLayout in the Appender.

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

config file:

<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>

To get Layout information, just use the Layout property of the base AppenderSkeleton class. To get the message already rendered in this layout, use the method RenderLoggingEvent from this same base class:

public class CutomAppender : AppenderSkeleton
{
    protected override void Append(LoggingEvent loggingEvent)
    {
        string renderedMessage = base.RenderLoggingEvent(loggingEvent);
        ILayout layout = base.Layout;
        // do something here
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM