0
レイアウトです。私はより多くの拡張プロパティを追加する必要がある場合は、上記のアプローチ次拡張プロパティは、設定ファイルに記載された
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);
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);
}
ことで、
Timestamp: ${date}${newline}Title: ${event-properties:item=Title}${newline}Message: ${message}${newline}${event-properties:item=StackTrace}${event-properties:item=InnerException}Machine: ${machinename}${newline}${newline}${LayoutFooter}
そしてコードを:
私はにレイアウトパターンを修正することにより、上記の要件を達成しています、私は設定ファイルとコードを変更する必要があります。
単一の設定ファイルの場合、この方法は問題ありませんが、複数の設定ファイルの場合は時間がかかります。
コードを変更するだけで拡張プロパティを追加でき、設定ファイルを変更することはできません。
Microsoftエンタープライズログライブラリを使用していたときにExtendedProperties
プロパティのLogEntry
クラスがMicrosoft.Practices.EnterpriseLibrary.Logging
であったため、この機能を実現できました。