2016-11-07 6 views
3

メッセージを記録するときにSQL Serverのストアドプロシージャを呼び出すようにSerilogを設定するにはどうすればよいですか? MS SQL Server sinkを使用してメッセージを直接データベーステーブルに格納する方法を見ていますが、代わりにストアドプロシージャを呼び出したいと思います。メッセージを記録する際にSQL Serverのストアドプロシージャを呼び出すようにSerilogを設定するにはどうすればよいですか?

答えて

4

私はSerilogのためのあらかじめ構築されたストアドプロシージャシンクについて知らない。

class StoredProcedureSink : ILogEventSink 
{ 
    public StoredProcedureSink(/* Connection info etc. */) { ... } 

    public void Emit(LogEvent logEvent) 
    { 
     // Invoke sproc using logEvent data 
    } 
} 

これらは、構成時に差し込まれています:

var sink = new StoredProcedureSink(/* ... */); 

Log.Logger = new LoggerConfiguration() 
    .WriteTo.Sink(sink) 
    .CreateLogger(); 

あなたがILogEventSinkインタフェースを実装することがストアドプロシージャに自分自身を呼び出すことができます

関連する問題