自定义NLog Appender

时间:2012-10-31 08:54:21

标签: c# log4net nlog appender

我尝试编写自定义appender来登录NLog。我在log4net中看到了一些应该写的appender,它继承自抽象类AppenderSkeleton。有人可以在NLog中命名模拟类吗?

1 个答案:

答案 0 :(得分:10)

log4net的appender的NLog模拟将成为目标。要创建自己的目标,您必须继承NLog.Targets.TargetWithLayout。您还应该使用属性TargetAttribute标记目标类:

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

下一步是添加程序集,其中您的类被定义为NLog扩展名:

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

最后一步 - 注册您的目标(NLog将按TargetAttribute搜索类型市场的扩展名)

<target name="foo" type="Foo"/>