Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom NLog Appender

I trying to write custom appender for logging in NLog. I saw some examlpes for log4net where should write appender which is inherit from abstract class AppenderSkeleton. Can anyone name the analog class in NLog?

like image 313
Mikhail Sokolov Avatar asked Oct 31 '12 08:10

Mikhail Sokolov


1 Answers

NLog analog of log4net's appenders will be target. For creating your own target, you have to inherit from NLog.Targets.TargetWithLayout. Also you should mark your target class with attribute TargetAttribute:

[Target("Foo")]
public class FooTarget : TargetWithLayout
{
    protected override void Write(LogEventInfo logEvent)
    {            
        Console.WriteLine(logEvent.Message);
    }
}

Next step is adding assembly where your class is defined to NLog extensions:

<nlog>
  <extensions>
    <add assembly="MyBarAssembly"/>
  </extensions>
  <targets>
     ...

And last step - registering your target (NLog will search in extensions for types market by TargetAttribute)

<target name="foo" type="Foo"/>
like image 159
Sergey Berezovskiy Avatar answered Sep 25 '22 02:09

Sergey Berezovskiy