さてさて、Mozilla の HTTP レイヤーのお行儀が悪いみたいですか?それともおそらく誰かに HTTP ログをとってくれと頼まれたんですね? さてどうしましょうか? Firefox を走らせる前に環境変数をいくつか設定すれば、HTTP の動作ログを取ることができます。プラットフォームごとに以下のステップに従ってください。
Firefox が立ちあがっていないことを確認してください。DOS プロンプトをオープンし、以下のように入力してください (この例では Firefox がデフォルトの場所にインストールされているものと仮定しています)。
C:\> set NSPR_LOG_MODULES=nsHttp:5,nsSocketTransport:5,nsHostResolver:5 C:\> set NSPR_LOG_FILE=C:\log.txt C:\> cd "Program Files\Mozilla Firefox" C:\Program Files\Mozilla Firefox\> .\firefox.exe
デバッグしようとしているプログラムをもう一度走らせてください。それが終わったら Firefox を終了してください。生成されたログファイルは C:\log.txt となります。
Firefox が立ちあがっていないことを確認してください。新しいシェルをオープンし (この例では bash 互換のものと仮定しています) 次のように入力してください。
bash$ export NSPR_LOG_MODULES=nsHttp:5,nsSocketTransport:5,nsHostResolver:5 bash$ export NSPR_LOG_FILE=/tmp/log.txt bash$ cd /path/to/firefox bash$ ./firefox
デバッグしようとしているプログラムをもう一度走らせてください。それが終わったら Firefox を終了してください。生成されたログファイルは /tmp/log.txt となります。
Firefox が立ちあがっていないことを確認してください。ターミナルアプリケーション (ユーティリティアプリケーショングループ以下にあります) を立ち上げ、以下のコマンドを入力してください (この例では Firefox をデスクトップにインストールしてあり、かつ OS X のデフォルトのシェル bash を使っているものと仮定しています)。
hellomac:~ John$ export NSPR_LOG_MODULES=nsHttp:5,nsSocketTransport:5,nsHostResolver:5 hellomac:~ John$ export NSPR_LOG_FILE=~/log.txt hellomac:~ John$ cd /Applications/Firefox.app/Contents/MacOS hellomac:/Applications/Firefox.app/Contents/MacOS John$ ./firefox-bin
デバッグしようとしているプログラムをもう一度走らせてください。それが終わったら Firefox を終了してください。生成されたログファイルはホームディレクトリの log.txt になります。注意:生成されたログファイルは UNIX 改行になるため閲覧するには UNIX のテキストファイルを扱えるエディタが必要になります。
NSPR_LOG_MODULES=nsHttp:3 のみを設定してください。
nsSocketTransport:5 はソケットレベルのログ出力をとらない場合には必要ありません (デバッグしたい事柄によっては、このレベルでログを取ると無駄な出力だらけになる場合もあります)。
nsHostResolver:5 は、ホストリゾルバ (DNS クエリなど) のログ出力に興味がない場合は外しても構いません。
NSPR_LOG_MODULES=nsFtp:5 を設定するだけです (古いバージョンでは nsFtp ではなく nsFTPProtocol にする必要があります)。
Page last modified 16:01, 2007年12月14日 by Kohei