.netコアのログメッセージにはNLog
を使用しています。.netコアのnlogに特定のデータとプロパティを記録する方法
以下は、私のためのロギングジョブを実行する方法です。 プロパティもログできます。 そして、私はこのメソッドを呼び出すときだけ、ファイルに書き込みます。私は、.NETコアにNLogを追加することにより、同様の機能を実現したい
"Executing ObjectResult, writing value Microsoft.AspNetCore.Mvc.ControllerContext."
"Request starting HTTP/1.1 GET http://localhost:5000/api/"
:
private static void WriteLog(LogEvent logEvent)
{
var log = LogManager.GetLogger(logEvent.Logger);
LogEventInfo logMsg = new LogEventInfo();
logMsg.Message = logEvent.Message;
logMsg.Level = logEvent.LogLevel;
logMsg.Properties.Add("Title", logEvent.Title);
logMsg.Properties.Add("Name", "abc");
if (!string.IsNullOrEmpty(logEvent.StackTrace))
{
logMsg.Properties.Add("StackTrace", "Stack Trace: " + logEvent.StackTrace + Environment.NewLine);
}
if (!string.IsNullOrEmpty(logEvent.InnerException))
{
logMsg.Properties.Add("InnerException", "Inner Exception: " + logEvent.InnerException + Environment.NewLine);
}
log.Log(logMsg);
}
のようなメッセージをログに記録されていません。 次のように私はStartUp.csにNLogを追加しました:
loggerFactory.AddNLog();
をしかし、上記のようにNLogを追加することによって、それがアクションの実行に関連するすべてのメッセージをログに記録します。しかし、私はこれらのメッセージを望んでいません。
NLogにLogInformation()を使用してメッセージを記録させます。さらに'StackTrace'
と'InnerException'
のようなプロパティをここに渡す方法
_logger.LogInformation("Home controller and Index action - logged");