|
Enterprise Library の Logging Application Block(LAB)を使用すると、共通のログ機能を簡単に実装できるようになります。ADO.NET Entity Framework データ プロバイダーは標準の Logging Application Block および設計パターンを使用し、追加機能用の LAB カスタマイズを提供します。
アプリケーションで、データベース、メッセージ キュー、Windows イベント ログ、または Windows Management Instrumentation(WMI)に情報のログを記録することが義務付けられている場合は、LAB がこの機能を提供します。特に、カテゴリや優先順位に基づいてログ記録メッセージをフィルター選択する必要がある場合や、メッセージを書式設定する必要がある場合、アプリケーション コードを変更しないでメッセージの宛先を変更する必要がある場合には、LAB が役立ちます。
アプリケーションにログ機能を追加するには、Enterprise Library の構成ツールを使って、アプリケーションの構成ファイル(app.config または web.config)にエントリを追加します。このツールは、Logging Application Block の .config ファイルを有効にするための固有の命令を含んでいます。またこのツールは、LAB を有効にするために必要な AppSetting も含んでいます。
Logging Application Block の出力を有効にするには、環境プロパティ Psql_Enable_Logging_Application_Block_Trace を true に設定します。あるいは、app.config ファイルで AppSetting プロパティの Psql.EnableLoggingApplicationBlock を true に設定します。
次の C# コードの一部は、app.config ファイルの loggingConfiguration プロパティを示しています。
<loggingConfiguration name="Logging Application Block" tracingEnabled="true" defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">
上記のプロパティのいずれかを false に設定すると、ロギング ブロックが無効になります。
有効にした場合、データ プロバイダーは、ADO.NET Entity Framework の標準的なクエリ ツリーによって生成される各 SQL ステートメントに対し、新しい LogEntry エントリのインスタンスを確立する必要があります。
ログ記録ブロックに記録される SQL は、最終的にネットワーク経由で送信される SQL でなければなりません。
では、Enterprise Library Configuration ツールを使って、新しい Logging Application Block エントリを追加します。
True
を選択します。
構成した LAB を、アプリケーションの app.config ファイルまたは web.config ファイルに追加する必要があります。
LAB とデータ プロバイダーの対話を有効にし構成するには、以下の設定を使用します。
次のコードは、Pervasive PSQL データ アクセス アプリケーションに追加することができる Logging Application Block の例を示します。
<loggingConfiguration name="Logging Application Block" tracingEnabled="true" defaultCategory="" logWarningsWhenNoCategoriesMatch="true"> <listeners> <add fileName="rolling.log" footer="----------------------------------------" header="----------------------------------------" rollFileExistsBehavior="Overwrite" rollInterval="None" rollSizeKB="0" timeStampPattern="yyyy-MM-dd" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging. Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices. EnterpriseLibrary.Logging, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" traceOutputOptions="None" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners. RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary. Logging, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="Rolling Flat File Trace Listener" /> </listeners> <formatters> <add template="Message:{message}
Category:{category}
 Priority:{priority}
EventId:{eventid}
 Severity:{severity}
Title:{title}

" type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters. TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="Text Formatter" /> </formatters> <categorySources> <add switchValue="All" name="Psql"> <listeners> <add name="Rolling Flat File Trace Listener" /> </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="Rolling Flat File Trace Listener" /> </listeners> </errors> </specialSources> </loggingConfiguration>
|