QMAIL3には二種類のログがあります。一つ目はシステムログでもう一つは通信ログです。
システムログは主に通信以外の部分でログを出力するときに使用されます。システムログはメールボックスディレクトリのlogsディレクトリの中にスレッドごとにユニークな名前をつけて出力されます。
ログのエントリには5つのレベルがあります。レベルは、高い順からFATAL, ERROR, WARN, INFO, DEBUGです。その他の設定の[ログレベル]で、指定したレベル以上のログのみを出力するように設定することができます。たとえば、ERRORを指定するとFATALとERRORレベルのエントリのみが出力され、DEBUGを指定すると全てのエントリが出力されます。
特定の文字列を含むシステムログのみ出力したい場合には、qmail.xmlのGlobal/LogFilterに正規表現を指定することができます。ここで指定した正規表現にログ内のモジュールがマッチした場合のみログが出力されます。指定しない場合にはすべてのログが出力されます。
また、QMAIL3が起動しなくなった場合などには、コマンドラインの-lを使用してログレベルを指定することができます。
システムログはバグ報告などがあったときに動作を調べるために追加することが多いので、エラーがあってもまったくログが出力されない場合も多いです。
通信ログは通信中にサーバとやり取りした内容を記録するために使用されます。サーバとうまく接続できなかったりエラーが発生するときにログを取ることにより、エラーの内容を詳しく調べることができます。通信ログはアカウントディレクトリのlogディレクトリの中にセッションごとにユニークな名前をつけて出力されます。
通信ログを取るには、アカウントのプロパティの詳細の設定で、[ログ]にチェックを入れます。受信時の通信ログを取る場合には[受信]の[ログ]に、送信時の通信ログを取る場合には[送信]の[ログ]にチェックを入れます。
サーバと通信した内容が全て書き込まれますので、クリアテキストで認証している場合にはパスワードも書き込まれます。トラブルの解決のためにログを開示するときには注意してください。
ログの書式は以下のようになっています。
[レベル 日時 モジュール] メッセージ 追加情報
これで一つのエントリになります。レベルは上で述べた、FATAL, ERROR, WARN, INFO, DEBUGのいずれかです。日時はエントリを出力した日時、モジュールはそのログを出力したモジュールの名前になります。ログの日付のフォーマットは、デフォルトでは「yyyy/MM/dd-HH:mm::ssZ」の形式になっていますが、qmail.xmlのGlobal/LogTimeFormatで指定することもできます。指定する場合には、@FormatDateで指定できるフォーマットが使用できます。追加情報は複数行になることもあります。