Tips

デバッグログの設定

日付2009/06/05
ID75764 (英語原文参照)
バージョン11.4
プラットフォームMac & Win

この記事は、最新ではないバージョンに関連した方法について解説しています。

最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。

デバッグログは、SET DATABASE PARAMETER コマンドにセレクタ34番("debug log recording")を渡すことにより記録を開始できます。この操作は、データベース実行中に行なわなければなりません。データベースが異常終了あるいは再起動された場合、設定はデフォルトのものに戻るからです。その場合、デバッグログはふたたびSET DATABASE PARAMETERコマンドで指示するまで再開されません。

最初のパラメータ(34)は、Debug Log Recordingを意味します。

第二のパラメータはログの種類(0は無効、1は通常の記録、2は詳細な記録)を意味します。

デバッグログが記録を開始した場合、データベースのdatabase.4dbase/logs/フォルダ内に存在するログファイルは上書きされることになりますが、ログの設定はデータベースに保存されているわけではないので、SET DATABASE PARAMETERコマンドを実行するまで新しいログファイルが作成されることはありません。

このコマンドの目的は、データベースが実行しようとしている動作を逐一記録することにあります。そのため、たいていのデベロッパはOn Startupメソッドで記録を開始したいと考えることでしょう。つまり、データベースの起動と同時にログの記録を開始するというわけです。これはほとんど場合、問題のない手法ですが、データベースをサービスとして登録している場合、異常終了後にアプリケーションが自動的に再起動するため、クラッシュ当時のログファイルがすぐに上書きされるという問題に直面します。

そのようなわけで、データベースをサービスとして実行しており、サービスに異常終了後に自動復帰するオプションを設定している場合、On Server Startupに少しのコードを追記し、以前のログファイルを別の場所に移動するなどの処置を加えると良いかもしれません。