私は Serilog を初めて使用し、{SourceContext:l}
各ログ メッセージに追加することなく、必要な場合にのみクラス名を表示することに苦労しています。私は次のようにコードを書くことができることを知っています:
Log.ForContext<Class1>().Verbose("message {SourceContext:l}");
以下のようにロガーをセットアップしています。
var log = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo
.ColoredConsole(outputTemplate: "{Timestamp:G} [{Level}] {SourceContext} {Message}{NewLine:l}{Exception:l}")
.CreateLogger();
ここで見られるようにクラスが指定されている場合にのみ、クラス名が表示されることを望んでいます。
Log.ForContext<Class1>().Verbose("message");
などのログが作成されている場合は表示されません。
Log.Verbose("message");
ただし、上記の例では、単に「メッセージ」ではなく「{SourceContext} メッセージ」の形式でログアウトが出力されますが、これは私が望んでいるものではありません。