Data Provider for .NET Guide (v11)

Logging Application Block

Enterprise Library の Logging Application Block(LAB)を使用すると、共通のログ機能を簡単に実装できるようになります。ADO.NET Entity Framework データ プロバイダーは標準の Logging Application Block および設計パターンを使用し、追加機能用の LAB カスタマイズを提供します。

LAB の使用に適した状況

アプリケーションで、データベース、メッセージ キュー、Windows イベント ログ、または Windows Management Instrumentation(WMI)に情報のログを記録することが義務付けられている場合は、LAB がこの機能を提供します。特に、カテゴリや優先順位に基づいてログ記録メッセージをフィルター選択する必要がある場合や、メッセージを書式設定する必要がある場合、アプリケーション コードを変更しないでメッセージの宛先を変更する必要がある場合には、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 でなければなりません。

Logging Application Block を構成するには

  1. スタートすべてのプログラム]メニューから、[Microsoft patterns & practicesEnterprise Library 4.1 - October 2008Enterprise Library Configuration]を選択します。Enterprise Library Configuration ウィンドウが現れます。
  2. FileNew Application]を選択します。
  3. Application Configuration]ノードを右クリックして、[NewLogging Application Block]を選択します。



  4. Category Sources]を右クリックして、[NewCategory]を選択します。
  5. Name ペインで Name を選択します。新しいカテゴリの名前を入力して Enter キーを押します。次の例は、カテゴリ名 PSQL Error を作成しています。



  6. SourceLevels ドロップダウン リストから、この新しいカテゴリのログ レベルを設定します。デフォルトでは、すべてのログ レベルが有効になっています。
  7. 新しいカテゴリを右クリックして、[NewTrace Listener Reference]を選択します。Formatted EventLog TraceListener ノードが追加されます。ReferencedTraceListener ドロップダウン リストから、"Formatted EventLog TraceListener" を選択します。
  8. 手順 4 から 7 を繰り返して、次のカテゴリを作成します。
  9. FileSave Application]を選択します。[Save Application]ウィンドウが現れます。構成ファイルの名前を入力します。デフォルトでは、ファイルは C:¥Program Files¥Microsoft Enterprise Library 4.1 - October 2008¥Bin¥filename.exe.config に保存されます。filename は、[Save Application]ウィンドウで入力した名前になります。

新しい Logging Application Block エントリの追加

では、Enterprise Library Configuration ツールを使って、新しい Logging Application Block エントリを追加します。

  1. Enterprise Library Configuration]を起動して、[File New Application]を選択します。
  2. Application Configuration]を右クリックし、次に[NewLogging Application Block]を選択します。右側のペインに Configuration section が表示されます。



  3. TracingEnabled]フィールドで True を選択します。
  4. Logging Application Block を保存します。

アプリケーション コードでの LAB の使用

構成した 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}&#xD;&#xA;Category:{category}&#xD;&#xA;
Priority:{priority}&#xD;&#xA;EventId:{eventid}&#xD;&#xA;
Severity:{severity}&#xD;&#xA;Title:{title}&#xD;&#xA;&#xD;&#xA;" 
         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 &amp; Warnings"> 
      <listeners> 
        <add name="Rolling Flat File Trace Listener" /> 
      </listeners> 
    </errors> 
  </specialSources> 
</loggingConfiguration> 

Data Access Application Block

その他のリソース