プログラム

C#プログラミングレッスン

C#での .NETプログラミングを易しく丁寧に解説するメールマガジンです。「C#プログラミング・レッスン」で、.NETプログラミングをマスターしましょう。

全て表示する >

【C#プログラミングレッスン】 No.139-TraceSource(7)

2007/09/04

┏━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━┳━┳━┓
┃☆┃ C#プログラミングレッスン                         ┃_┃□┃×┃
┣━┻━━━━━━━━━━━━━━━━━━━━━━━━━┻━┻━┻━┫
┃ TraceSource(7)                                             No.139┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

TraceSourceについて長々と書いてきましたが、今回がその最終回です。
最終回は、リスナーの共有についてです。

■──────────────────────────────────
■ リスナーを共有する。

今までは、リスナーを記述するのに、
<listeners>
   <add name="TextFile"
        type="System.Diagnostics.TextWriterTraceListener"  
        initializeData="d:\temp\myTrace.log" />
</listeners>

と書いてきましたが、

<listeners>
   <add name="TextFile" />
</listeners>

と名前だけ記述し、 <sharedListeners>要素で、実際のトレースリスナーを記
述することもできます。

    <sharedListeners>
       <add name="TextFile"
            type="System.Diagnostics.TextWriterTraceListener"
            initializeData="d:\temp\myTrace.log" />
    </sharedListeners>

このようにすれば、 複数のTraceSourceに対し、ひとつのリスナーを割り当て
ることができます。
ちょっと長めですが、こんな感じ。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
      <sources>
          <source name="MyTraceSource01" switchName="sourceSwitch01"
            switchType="System.Diagnostics.SourceSwitch">
              <listeners>
                  <remove name="Default" />
                  <add name="TextFile" />
              </listeners>
          </source>
          <source name="MyTraceSource02" switchName="sourceSwitch02"
              switchType="System.Diagnostics.SourceSwitch">
              <listeners>
                  <remove name="Default" />
                  <add name="TextFile" />
              </listeners>
          </source>
      </sources>

      <sharedListeners>
          <add name="TextFile"
              type="System.Diagnostics.TextWriterTraceListener"
              initializeData="d:\temp\myTrace.log"/>
      </sharedListeners>

      <switches>
          <add name="sourceSwitch01" value="Error"/>
          <add name="sourceSwitch02" value="Verbose"/>
      </switches>
  </system.diagnostics>
</configuration>


■──────────────────────────────────
■ 実行例

この構成ファイルで、以下のプログラムを実行すると、

 -------------
 TraceSource trace1 = new TraceSource("MyTraceSource01");
 TraceSource trace2 = new TraceSource("MyTraceSource02");

 trace1.TraceEvent(TraceEventType.Start, 0, "開始です");
 trace1.TraceEvent(TraceEventType.Critical, 1, "重大なエラーです");
 trace1.TraceEvent(TraceEventType.Error, 2, "エラーです");
 trace1.TraceEvent(TraceEventType.Warning, 3, "警告です");
 trace1.TraceEvent(TraceEventType.Information, 4, "情報です");
 trace1.TraceEvent(TraceEventType.Stop, 5, "終了です");
 trace1.Flush();
 trace2.TraceEvent(TraceEventType.Start, 0, "開始です");
 trace2.TraceEvent(TraceEventType.Critical, 1, "重大なエラーです");
 trace2.TraceEvent(TraceEventType.Error, 2, "エラーです");
 trace2.TraceEvent(TraceEventType.Warning, 3, "警告です");
 trace2.TraceEvent(TraceEventType.Information, 4, "情報です");
 trace2.TraceEvent(TraceEventType.Stop, 5, "終了です");
 trace2.Flush();
 -------------

d:\temp\myTrace.log" に、以下の内容が書き出されます。


 -------------
 MyTraceSource01 Critical: 1 : 重大なエラーです
 MyTraceSource01 Error: 2 : エラーです
 MyTraceSource02 Start: 0 : 開始です
 MyTraceSource02 Critical: 1 : 重大なエラーです
 MyTraceSource02 Error: 2 : エラーです
 MyTraceSource02 Warning: 3 : 警告です
 MyTraceSource02 Information: 4 : 情報です
 MyTraceSource02 Stop: 5 : 終了です
 -------------

┌─┬─────────────────────────┬─┬─┬─┐
│☆│ C#プログラミングレッスン  (ぼぼ週刊)            │_│□│×│
├─┴─────────────────────────┴─┴─┴─┤
│ Published by Gushwell.                                           │
│ Copyright (C) 2004-2007 Gushwell All rights reserved.            │
│ Microsoft MVP Visual Developer - Visual C#(Apr 2005 - Mar 2008)  │
│-------------------- Gushwell's Page ---------------------------- │
│ 窓際プログラマーの独り言  :http://blog.livedoor.jp/gushwell/    │
│ 窓際プログラマーの読書三昧:http://gushwell.jugem.jp/            │
│ C#デザインパターン :                                             │
│  『増補改訂版Java言語で学ぶデザインパターン入門 / 結城 浩(著)』  │
│   のサンプルコードをC#に移植したものを掲載しています。           │
│   移植後のコードの公開は、結城氏の了解を得ています。             │
│   http://blog.livedoor.jp/gushwell/archives/50333227.html        │
└─────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
       【ポコカ】がおサイフ携帯の新しい利用方法を提案します。

  お店のクーポン・会員カード・スタンプカードをケータイにひとまとめ

         ☆ おサイフケータイとお店をつなげるポータルサイト ☆
           Pococa!(R)ポコカ URL: http://www.pococa.com/ct/
---------------------------------------------------------------------

規約に同意してこのメルマガに登録/解除する

メルマガ情報

創刊日:2004-08-12  
最終発行日:  
発行周期:ほぼ週刊  
Score!: 非表示   

コメント一覧コメントを書く

この記事にコメントを書く

上の画像で表示されている文字を半角英数で入力してください。

※コメントの内容はこのページに公開されます。発行者さんだけが閲覧できるものではありません。 コメントの投稿時は投稿者規約への同意が必要です。

  • コメントはありません。