最近私のASP.Netコアプロジェクトにログを追加しました。C#ASP.NET Core Serilogログにクラス名とメソッドを追加する
{タイムスタンプ:YYYY-MM-DD HH:MM:ss.fff ZZZ} [{レベル}] {メッセージ} {改行} {例外}現在のログは、この形式で.txtファイルに書き込みます例えば
:
2017年11月30日13:58:22.229 01:データベース内に作成された00 [情報]項目。
これは問題ありませんが、この.txtファイルに対して実行されているログのメソッド名とクラス名が必要です。クラスAは、B法とログこれを使用してデータベースに何かを書き込むとき例えば、私は
ClassA.MethodBのようなものを見たいと思います。項目は、データベース内に持っているログイン
すべてのクラスを作成しました
:そのロガーは、私は現在、Serilogを使用して、次のLoggerConfigurationを使用していpublic class ClassA
{
private readonly ILogger _log;
public ClassA(ILogger<ClassA> log){
_log = log;
}
public void AddItemToDb(Item item){
//Add item
//On success:
_log.LogInfo("Added item to db.");
}
}
のような彼らのコンストラクタに注入しました
ログにクラスとメソッドを追加するにはどうすればよいですか?
編集
私はそうのような.WriteTo.Rollingfile()メソッドにカスタムoutputTemplateを追加しました:、名前空間プラスログに追加されるクラスになった
"{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] ({SourceContext}) {Message}{NewLine}{Exception}")
唯一の方法は、あなたのロガーの構成では、今
「ILogger」はどのようなタイプですか? Serilogロガーですか?それとも、ASP.NET Coreロガーですか? – mason
Microsoft.Extensions.Logging.ILogger – Jeroen
https://github.com/serilog/serilog/issues/1084#issuecomment-358117004にコードサンプルが追加されました。 –