TTGlobalクラスは、TTClassesのロギング機能を提供します。
なし
static void setLogStream (ostream & str)
TTClassesのロギング情報の送信先を指定します。デフォルトでは、TTClassesロギングが有効な場合、stderr
にログが記録されます。このメソッドを使用すると、ユーザー・アプリケーションはファイル(または他の任意のostream &)にログを記録できます。
次の例に、アプリケーションがapp_log.txt
というテキスト・ファイルに記録する方法を示します。
ofstream log_file ("app_log.txt") ;
TTGlobal::setLogStream (log_file) ;
static void setLogLevel (TTLog::TTLOG_LEVEL level)
このメソッドは、TTClassesロギングの冗長レベルを指定します。表3.4に、TTClassesのロギング・レベルを示します。これらのレベルは累積されます。
たとえば、ロギング・レベルをTTLog::TTLOG_ERRに設定するには、次の行をプログラムに追加します。
TTGlobal::setLogLevel (TTLog::TTLOG_ERR) ;
static void disableLogging()
このメソッドは、すべてのTTClassesロギングを無効にします。次の2つの文は同一であることに注意してください。
TTGlobal::disableLogging() ;
TTGlobal::setLogLevel (TTLog::TTLOG_NIL) ;
TTGlobalロギング機能は、TTClassesプログラム内で発生する問題のデバッグに非常に役立つことがあります。ただし、冗長度の高いロギング・レベル(TTLog::TTLOG_INFOおよびTTLog::TTLOG_DEBUG)の場合は、膨大な出力が生成される可能性があることに注意してください。これらのロギング・レベルは、本番の稼働時ではなく、開発時または不具合の診断時に使用してください。
マルチスレッド・プログラムからロギングする場合は、ディスクへの書込み時に、異なるプログラム・スレッドのログ出力が混合されるという問題が発生するおそれがあります。この問題を軽減するには、ios_base::unitbuf iostreamマニピュレータでostreamバッファリングを無効にします。
例3.9に、ロギング・レベルTTLog::TTLOG_ERRでTTClassesロギングをファイルapp_log.txt
に送信する方法を示します。この例の場合、このファイルへのロギングはバッファリングされないため、異なるスレッドの出力が混合されることはありません。
ofstream log_file ("app_log.txt") ;
log_file << std::ios_base::unitbuf ;
TTGlobal::setLogStream (log_file) ;
TTGlobal::setLogLevel (TTLog::TTLOG_ERR) ;
TTGlobalの使用方法の詳細は、「TTClassesのロギング」を参照してください。