MSEL 5は私たちにとって魅力のように機能してきましたが、最近、追加の「categorySources」を構成しようとしましたが、結果は常に同じです。ログエントリは常に「defaultCategory」を使用して作成され、次のエラーがログファイルに記録されます。「メッセージ:カテゴリ「AppLogGen」の明示的なマッピングはありません。ログエントリは次のとおりです。」
web.configの「loggingConfiguration」エントリ
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="AppLog">
<listeners>
<add name="Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\LoggingTrace\trace.log" formatter="Text Formatter"
rollFileExistsBehavior="Increment" rollInterval="Midnight" rollSizeKB="10000"
timeStampPattern="dd-MM-yyyy" traceOutputOptions="None" filter="All" />
<add name="Flat File Trace Listener Login" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\LoggingTrace\traceLogin.log" formatter="Text Formatter Login"
rollFileExistsBehavior="Increment" rollInterval="Midnight" rollSizeKB="10000"
timeStampPattern="dd-MM-yyyy" traceOutputOptions="None" filter="All" />
</listeners>
<formatters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="Format 1:: Timestamp: {timestamp(local)}{newline}
Message: {message}{newline}
Category: {category}{newline}
"
name="Text Formatter" />
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="Format 2:: Timestamp: {timestamp(local)}{newline}
Message: {message}{newline}
Category: {category}{newline}
"
name="Text Formatter Login" />
</formatters>
<categorySources>
<add switchValue="All" name="InfinityWeb">
<listeners>
<add name="Flat File Trace Listener" />
</listeners>
</add>
<add switchValue="All" name="AppLog">
<listeners>
<add name="Flat File Trace Listener Login" />
</listeners>
</add>
<add switchValue="All" name="AppLogGen">
<listeners>
<add name="Flat File Trace Listener Login" />
</listeners>
</add>
</categorySources>
<specialSources>
<allEvents switchValue="All" name="All Events" />
<notProcessed switchValue="All" name="Unprocessed Category" />
<errors switchValue="All" name="Logging Errors & Warnings">
<listeners>
<add name="Flat File Trace Listener" />
</listeners>
</errors>
</specialSources>
コード、ログファイルへの書き込み
//logWriter.Write(message, category, priority, eventId, (TraceEventType)severity, DefaultTitle, null);
LogEntry logEntry = new LogEntry();
logEntry.Categories.Add("AppLogGen");
logEntry.Message = "Override " + message;
logWriter.Write(logEntry);
ログファイルの出力
Timestamp: 9/6/2012 1:15:23 PM
メッセージ:カテゴリ「AppLogGen」の明示的なマッピングはありません。ログエントリは次のとおりです。
タイムスタンプ:2012年9月6日7:45:23 AM
メッセージ:UserId:Adminのログインのオーバーライドに成功しました
カテゴリ:AppLogGen
重大度:情報カテゴリ:AppLog。。。拡張プロパティ:
私が何をするかに関係なく、ロギングは常に「defaultCategory」で指定されたカテゴリソースを使用します。すでにこれに2日を費やしました。ヘルプ!