9

我试图编写用于登录 NLog 的自定义附加程序。我看到了一些 log4net 的例子,应该在哪里编写继承自抽象类 AppenderSkeleton 的附加程序。任何人都可以命名 NLog 中的模拟类吗?

4

1 回答 1

11

log4net 的附加程序的 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 将在扩展中搜索类型 market by TargetAttribute

<target name="foo" type="Foo"/>
于 2012-10-31T09:03:51.613 回答