このモジュールはクライアントリクエストの forensic ロギングを 行ないます。ログ収集はリクエストの処理の前と後に行なわれますので、 forensic ログは各リクエストに対して二行ログ収集します。 Forensic ロガーは非常に厳密です。これは以下のことを意味します:
Forensic ログの出力を検査するためには、
配布物の support ディレクトリにある check_forensic
スクリプトが役に立つでしょう。
各リクエストは2回ログ収集されます。最初はリクエストが処理される 前 (つまり、ヘッダを受け取った後) です。2度目のログは リクエストが処理された後、通常のログ収集と同じときに 行なわれます。
各リクエストを識別するために、リクエストには
一意なリクエスト ID が割り当てられます。この forensic ID は
フォーマット文字列 %{forensic-id}n
を使うことで
通常の transfer ログにログ収集することもできます。
最初の行は forensic ID、リクエスト行と受け取ったすべてのヘッダを
パイプ文字 (|
) で分離してログ収集します。
例えば以下のようになります (実際はすべて同じ行になります):
最初のプラス文字がこのログは最初のログであることを示します。 二番目の行はマイナス文字と ID のみです:
check_forensic
スクリプトは引数としてログファイルの名前を
取ります。+
/-
の ID の組を調べ、完了していない
リクエストがある場合は警告を発します。
ログファイルが保存されるディレクトリがサーバを起動したユーザ 以外で書き込み可能になっているときにセキュリティが破られる可能性が あることについての詳細はセキュリティのこつを 参照してください。
forensic-id
というトークンを作成し、フォーマット文字列
%{forensic-id}n
を使うことでそのトークンを transfer ログに
追加することができます。
引数はログが書き出される位置を指定し、以下の 2種類の値のどちらかを 取ることができます:
|
" と、その後にログ情報を標準入力から
受け取るプログラム。プログラム名は プログラムを使う場合、そのプログラムは
Unix 以外のプラットフォームでファイル名を入力するときは、 プラットフォームがバックスラッシュの使用を許可している場合でも、 スラッシュのみが使われるように気をつけてください。 普通は設定ファイルすべてにおいて、スラッシュの方を使用するように してください。