プログラム

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

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

全て表示する >

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

2007/07/10

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

.NET Framework2.0 から、TraceSource という新しいトレース用のクラスが追
加されました。
今回からは、この TraceSourceにクラスについて説明していきます。

■──────────────────────────────────
■ TraceSourceクラス

TraceSource クラスの一番の特徴は出力用のメソッドが、static からインスタ
ンスメソッドに変更されている点です。

TraceSourceを使ったコードを示します。

using System.Diagnostics;
...
  TraceSource trace = new TraceSource("MyTraceSource");
  trace.Switch.Level = SourceLevels.All;

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

この実行結果は、

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

となります。

TraceSource のインスタンスを生成後、生成したトレースのスイッチレベルを
ALL に設定しています。
これで、すべてのイベントが出力の対象になります。

ためしに、

  trace.Switch.Level = SourceLevels.Warning;

とすると、対象となるのは、Warning 以上のイベントとなり、出力結果は以下
のようになります。

  MyTraceSource Critical: 1 : 重大なエラーです
  MyTraceSource Error: 2 : エラーです
  MyTraceSource Warning: 3 : 警告です

■──────────────────────────────────
■ TraceEventType列挙体

TraceEventメソッドの第1引数には、TraceEventType列挙体を渡します。
TraceEventType には、以下の10個のイベントが定義されています。

 Critical    致命的なエラーまたはアプリケーションのクラッシュ。  
 Error       回復可能なエラー。  
 Warning     重大でない問題。  
 Information 情報メッセージ。  
 Verbose     トレースのデバッグ。  
 Resume      論理演算の再開。  
 Suspend     論理演算の中断。  
 Start       論理演算の開始。  
 Stop        論理演算の停止。  
 Transfer    相関 ID の変更。  

これにより、どのような情報をトレースに出力するのかを指定しています。


■──────────────────────────────────
■ SourceLevels列挙体

TraceSource の Switch プロパティは、ソース スイッチ値を表す SourceSwitch
オブジェクトで、そのメンバーとして、スイッチのイベント レベルを表す Level
プロパティがあります。Level プロパティは、SourceLevels 列挙体です。

SourceLevels列挙体には、以下のレベルが定義されています。

 All              すべてのイベントを通過させます。  
 Off              いずれのイベントも通過させません。  
 Critical         Critical イベントのみを通過させます。  
 Error            Critical イベントおよび Error イベントを通過させます。  
 Warning          Critical、Error、および Warning の各イベントを通過さ
                  せます。  
 Information      Critical、Error、Warning、および Information の各イベ
                  ントを通過させます。  
 Verbose          Critical、Error、Warning、Information、および Verbose
                  の各イベントを通過させます。  
 ActivityTracing  Stop、Start、Suspend、Transfer、および Resume の各イ
                  ベントを通過させます。  

この列挙体には、メンバ値のビットごとの組み合わせを可能にする 
FlagsAttribute 属性が含まれていますので、

  trace.Switch.Level = SourceLevels.Error | SourceLevels.ActivityTraceing

といった指定ができます。


■──────────────────────────────────
■ 再度 TraceSourceの特徴は

TraceSource クラスがインスタンスを持つということは、TraceSource を new
する時のトレース名を変えることで、複数のトレースを管理できるということ
です。
例えば、GUI に関するトレースは、ActivityTracing と Error 以上を出力し、
データベース関連のトレースは、Warning 以上を出力する、といったことが可
能です。従来の Trace クラスではこれが出来ませんでした。

┌─┬─────────────────────────┬─┬─┬─┐
│☆│ 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!: 非表示   

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

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

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

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

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