0

このパッケージSerilog.Settings.Configurationは、Serilog での Microsoft ILogger 構成設定の使用をサポートしています。

    "Console": {
      "LogLevel": {
        "Default": "Debug"
      }
    },

これにマップします(私が正しく理解している場合)

.MinimumLevel.Override("Console", LogEventLevel.Debug)
.WriteTo.Console()

MQTT で使用するカスタム シンクを作成しました。シンクを構築する拡張メソッドはパラメーターを取ります。1 つは実際には文字列として表現できません。

.WriteTo.MqttSink(managedMqttClientObject, "name of application emitting logs")

Serilog.Settings.Configurationカスタム シンクと併用したいのですが、最適な方法についてアドバイスをいただければ幸いです。

これまでのアイデア

  • MqttSink を使用するかどうかを決定するために構成値を明示的に釣り上げるコードを作成し、使用する場合はそれを構成して適用します。
  • パラメータをシンク クラスの静的プロパティにし、静的プロパティを使用するパラメータなしのファクトリ メソッドを提供し、呼び出しの前にそれらの値をマーシャリングします。.ReadFrom.Configuration(config)

私もこれを行うことができました

var loggerFactory = new LoggerConfiguration()
.ReadFrom.Configuration(config)
.WriteTo.MqttSink(managedMqttClient, "log source name");

Serilog.Settings.Configurationしかし、パラメータなしのファクトリ メソッドが見つからない場合に何が起こるかはよくわかりませんMqttSink。静的プロパティのアプローチよりも良い方法があれば、ご指導いただければ幸いです。

4

1 に答える 1