9

NLog にログインするためのカスタム アペンダーを作成しようとしています。抽象クラス AppenderSkeleton から継承されるアペンダーを記述する必要がある log4net の例をいくつか見ました。誰でも 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は拡張機能でタイプマーケットを検索しますTargetAttribute

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