ログ関数

ここにある関数は,様々なログ機能を提供します: 詳しくは Log クラスの概要 を参照してください. 関数は (非明示的に) 現在アクティブなログターゲットを使うように なっているので,ログターゲットが標準的なもの (プログラム開始時に wxWidgets がインストールしたもの) でない場合には,本節の説明は 当てはまらないことがあります.

Include files

<wx/log.h>



::wxDebugMsg



void wxDebugMsg(const wxString& fmt, ... )

NB: この関数は撤廃され, ログ関数wxLogDebug に置き換えられました.

デバッグメッセージを表示します; Windows ではデバッガコマンドウィンドウに メッセージを表示し,Unix では標準エラー出力にメッセージを書き出します.

文法は printf と同じで,フォーマット文字列と可変長の引数リスト を渡します.

Tip: Windows でメッセージがデバッグウィンドウに表示される前に アプリケーションがクラッシュしてしまう場合には,毎回 wxDebugMsg を 呼び出した後に wxYield を入れてください. wxDebugMsg は WIN32 では (少なくとも Watcom C++ では) うまく動作しないようです: あらかじめ メッセージをフォーマットしてから OutputDebugString を使うように してください.

Include files

<wx/utils.h>



::wxError



void wxError(const wxString& msg, const wxString& title = "wxWidgets Internal Error")

NB: この関数は撤廃されています.wxLogError を使ってください.

msg を表示して,プログラムの実行を継続します.Unix では ログを標準エラー出力に書き込み,Windows ではメッセージボックスを ポップアップします. wxWidgets で内部エラーが起きた際に使われます. wxFatalError も参照してください.

Include files

<wx/utils.h>



::wxFatalError



void wxFatalError(const wxString& msg, const wxString& title = "wxWidgets Fatal Error")

NB: この関数は撤廃されています. wxLogFatalError を使ってください.

msg を表示して,プログラムを終了します.Unix では ログを標準エラー出力に書き込み,Windows ではメッセージボックスを ポップアップします. wxWidgets で致命的な内部エラーが起きた際に使われます. wxError も参照してください.

Include files

<wx/utils.h>



::wxLogError



void wxLogError(const char * formatString, ... )



void wxVLogError(const char * formatString, va_list argPtr)

エラーメッセージ,すなわちユーザに表示しなければならないメッセージに 使う関数です.デフォルトの処理では,メッセージボックスを表示して, ユーザにメッセージを伝えます.



::wxLogFatalError



void wxLogFatalError(const char * formatString, ... )



void wxVLogFatalError(const char * formatString, va_list argPtr)

wxLogError に似ていますが,終了コード 3 で プログラムを終了します.標準関数 abort() を使うと,同じ 終了コードでプログラムを終了します.



::wxLogWarning



void wxLogWarning(const char * formatString, ... )



void wxVLogWarning(const char * formatString, va_list argPtr)

警告メッセージ - 通常はユーザに表示されるが,プログラムの動作を止めない - 用の関数です



::wxLogMessage



void wxLogMessage(const char * formatString, ... )



void wxVLogMessage(const char * formatString, va_list argPtr)

通常時の情報通知メッセージ全般むけの関数です.デフォルトでは メッセージボックスで表示されます (が,変更はできます).



::wxLogVerbose



void wxLogVerbose(const char * formatString, ... )



void wxVLogVerbose(const char * formatString, va_list argPtr)

冗長 (verbose) な出力用の関数です.通常,冗長な出力は抑制されていて, ユーザがプログラムの進捗をより詳しく知りたいと思った場合に有効化できる ようになっています (もうひとつの,やや混乱を招く名前を持った同じ機能の 関数に wxLogInfo があります).



::wxLogStatus



void wxLogStatus(wxFrame * frame, const char * formatString, ... )



void wxVLogStatus(wxFrame * frame, const char * formatString, va_list argPtr)



void wxLogStatus(const char * formatString, ... )



void wxVLogStatus(const char * formatString, va_list argPtr)

この関数でログ出力するメッセージは, frame のステータスバーか, (二つ目の形式の関数を使った場合には) デフォルト値であるトップレベルの アプリケーションウィンドウのステータスバーに現れます.

ターゲットとなるフレームにステータスバーがない場合,メッセージは 失われます.



::wxLogSysError



void wxLogSysError(const char * formatString, ... )



void wxVLogSysError(const char * formatString, va_list argPtr)

ほとんど wxWidgets 自体で使われている関数ですが,システムコール (API 関数) が失敗した後にエラーを記録する場合には便利でしょう. この関数は指定されたメッセージテキストと,最後に発生したシステムエラーの コード (プラットフォームにより,errno または::GetLastError() の値になります) ,およびコードに対応するエラーメッセージをログ出力します. この関数の第二形式は,エラーコードを明示的に第一引数としてとります.

See also

wxSysErrorCode, wxSysErrorMsg



::wxLogDebug



void wxLogDebug(const char * formatString, ... )



void wxVLogDebug(const char * formatString, va_list argPtr)

由緒正しいデバッグ出力用関数です.この関数が何か処理を行うのは デバッグモード (プリプロセッサシンボル __WXDEBUG__ が定義されている時) だけで,リリースモードでは何も展開されません.



::wxLogTrace



void wxLogTrace(const char * formatString, ... )



void wxVLogTrace(const char * formatString, va_list argPtr)



void wxLogTrace(const char * mask, const char * formatString, ... )



void wxVLogTrace(const char * mask, const char * formatString, va_list argPtr)



void wxLogTrace(wxTraceMask mask, const char * formatString, ... )



void wxVLogTrace(wxTraceMask mask, const char * formatString, va_list argPtr)

wxLogDebug と同様,トレース (trace) 関数はデバッグビルドだけ 何らかの処理を行い,リリースビルドでは何も行いません. デバッグログとトレースを別々の関数にするのは,トレースメッセージは 大量に出ることが多く,他のデバッグメッセージと切り離したほうがわかり易い からです.

トレースメッセージはまた,別々のカテゴリに分けられる場合が多く, ここに挙げた関数の第二形式や第三形式では,wxLog で 有効化された mask を持っているメッセージだけをログ出力する ようになっています.これにより,トレースマスクの値を変更して (実行時 中にもできます),ある操作に対して選択的にトレースを出力し,別の処理の はしないようにできます.

二番目の (文字列マスクを引数にとる) 関数では, AddTraceMask を呼び出すか, 環境変数 WXTRACE を設定してあらかじめ 有効化されているマスクを持ったメッセージだけをログ出力します. wxWidgets が使っている定義済みの文字列トレースマスクを以下に示します:

Caveats: マスクとフォーマット文字列は両方とも文字列なので, 場合によっては関数シグネチャの混乱を招くことがあります: フォーマット文字列だけを引数にとるバージョンの wxLogTrace を 呼び出すつもりで,%s フォーマット文字列パラメタを追加し, 第二引数に %s 用の文字列パラメタを渡してしまうと, 二つの文字列からなるパラメタを関数に指定したために, 文字列マスクを引数に取る wxLogTrace が誤って呼び出されてしまいます. この場合,残念ながら,例えば不要な整数型引数を (%d フォーマット 文字列を使って) 追加したりして,先頭に二つ文字列型が並ばないように するしかありません.

三つ目のバージョンは, mask に対応する全てのビットが wxLog トレースマスクでセットされているメッセージだけをログ出力します. マスクはSetTraceMask で設定できます. このバージョンは,ユーザ定義のトレースマスクを簡単に定義できないという 点で少し柔軟性に欠けています - そういうわけで,この関数は撤廃され, 文字列トレースマスクを使うよう推奨しています.



::wxSafeShowMessage



void wxSafeShowMessage(const wxString& title, const wxString& text)

この関数はユーザに確実にメッセージを提示します.また,この関数は, アプリケーションがまだ初期化されていなかったり,(クラッシュ寸前のような) 何らかの異常な状態にあっても安全に呼び出せるはずです. Windows では,この関数は (安全に呼び出せるとは限らない) wxMessageBox ではなく, ネイティブのダイアログを使ってメッセージを表示します. それ以外のプラットフォームでは,単にメッセージの前に title をつけて 標準出力に出力します.

Parameters

title
ユーザに提示するメッセージボックスのタイトル, またはメッセージ文字列の先頭部分です

text
ユーザに示すテキストです

See also

wxLogFatalError

Include files

<wx/log.h>



::wxSysErrorCode



unsigned long wxSysErrorCode(void)

最後のシステムコール以後のエラーコードを返します. Unix プラットフォームでは errno を, Win32 では GetLastError を返します.

See also

wxSysErrorMsg, wxLogSysError



::wxSysErrorMsg



const wxChar * wxSysErrorMsg(unsigned long errCode = 0)

指定したシステムエラーコードに対応するえらーメッセージを返します. errCode$0$ (デフォルト値です) の場合,最後に発生したエラーコード (wxSysErrorCode の返すエラーコード) を 使います.

See also

wxSysErrorCode, wxLogSysError



WXTRACE

Include files

<wx/object.h>



WXTRACE(formatString, ...)

NB: この関数は撤廃されており,ログ関数 に置き換えられています.

wxTrace を printf 形式の可変引数構文で呼び出します.出力は現在の出力ストリーム に送られます (wxDebugContext を参照してください).

Include files

<wx/memory.h>



WXTRACELEVEL



WXTRACELEVEL(level, formatString, ...)

NB: この関数は撤廃されており,ログ関数 に置き換えられています.

wxTrace を printf 形式の可変引数構文で呼び出します.出力は現在の出力ストリーム に送られます (wxDebugContext を参照してください). 第一引数は,出力しようとする情報のレベルです. この情報は wxDebugContext::GetLevel の返すレベルに等しいか,それより 大きい場合に出力されます.

Include files

<wx/memory.h>



::wxTrace



void wxTrace(const wxString& fmt, ... )

NB: この関数は撤廃されており,ログ関数 に置き換えられています.

printf 形式の可変引数の構文をとります.出力は現在の出力ストリーム に送られます (wxDebugContext を参照してください).

Include files

<wx/memory.h>



::wxTraceLevel



void wxTraceLevel(int level, const wxString& fmt, ... )

NB: この関数は撤廃されており,ログ関数 に置き換えられています.

printf 形式の可変引数の構文をとります.出力は現在の出力ストリーム に送られます (wxDebugContext を参照してください). 第一引数は,出力しようとする情報のレベルです. この情報は wxDebugContext::GetLevel の返すレベルに等しいか,それより 大きい場合に出力されます.

Include files

<wx/memory.h>

ymasuda 平成17年11月19日