我试图编写用于登录NLog的自定义附加程序。我看到了log4net的一些示例,应该在哪里写从抽象类AppenderSkeleton继承的appender。谁能在NLog中命名模拟类?

最佳答案

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将通过TargetAttribute在扩展名中搜索类型市场)
<target name="foo" type="Foo"/>

关于c# - 自定义NLog Appender,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13154263/

10-16 05:13