TTGlobalクラスは、プログラム開発およびアプリケーションのロギングを支援するためのロギング機能をTTClasses内に備えています。
なし
static void setLogStream (ostream & str)
TTClassesのロギング情報の送信先を指定します。デフォルトでは、ロギングが有効な場合、TTClassesは標準エラーに記録します。このメソッドを使用すると、ユーザー・アプリケーションはファイル(または他の任意のostream &)に記録できます。
次の例に、アプリケーションがapp_log.txt
というテキスト・ファイルに記録する方法を示します。
ofstream log_file ("app_log.txt") ;
TTGlobal::setLogStream (log_file) ;
static void setLogLevel (TTLog::TTLOG_LEVEL level)
このメソッドは、TTClassesロギングの冗長レベルを指定します。許容されるロギング・レベルは次の6つです。
デフォルトでは、TTClassesロギングはTTLog::TTLOG_WARNとして開始されます。このレベルでは、準備済の問合せ計画などが、TTCmdの実行前にバインドされたパラメータの値とともに記録されます。
たとえば、ロギング・レベルをTTLog::TTLOG_ERRに設定するには、次の行をプログラムに追加します。
TTGlobal::setLogLevel (TTLog::TTLOG_ERR) ;
static void disableLogging()
このメソッドは、すべてのロギングを無効にします。次の2つの文は同一であることに注意してください。
TTGlobal::disableLogging() ;
TTGlobal::setLogLevel (TTLog::TTLOG_NIL) ;
TTGlobalロギング機能は、TTClassesプログラム内で発生するあらゆる種類の問題のデバッグに非常に役立つことがあります。ただし、最も冗長なロギング・レベル(TTLog::TTLOG_INFOおよびTTLog::TTLOG_DEBUG)によって、膨大な出力が生成される可能性があることに注意してください。これらのロギング・レベルは、開発時または不具合の診断の試行時に使用してください。
マルチスレッド・プログラムからロギングする場合は、ディスクへの書込み時に、異なるプログラム・スレッドのログ出力が混合されるという問題が発生するおそれがあります。この問題を軽減するには、ios_base::unitbuf iostreamマニピュレータでostreamバッファリングを無効にします。
次の例に、TTClassesロギングをロギング・レベルTTLog::TTLOG_ERRでファイルapp_log.txtに送信し、異なるスレッドの出力が混合されないようにするため、このファイルへのロギングがバッファリングされないようにする方法を示します。
ofstream log_file ("app_log.txt") ;
log_file << std::ios_base::unitbuf ;
TTGlobal::setLogStream (log_file) ;
TTGlobal::setLogLevel (TTLog::TTLOG_ERR) ;