さてさて、Mozilla の HTTP レイヤーのお行儀が悪いみたいですか?それともおそらく誰かに HTTP ログをとってくれと頼まれたんですね? さてどうしましょうか? Firefox を走らせる前に環境変数をいくつか設定すれば、HTTP の動作ログを取ることができます。プラットフォームごとに以下のステップに従ってください。
HTTP ログを有効にする
Windows
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
となります。
Linux
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
となります。
Mac OS X
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 のテキストファイルを扱えるエディタが必要になります。
その他のオプション
- HTTP リクエスト/レスポンスヘッダーのログのみをとりたい場合には、
NSPR_LOG_MODULES=nsHttp:3
のみを設定してください。 -
nsSocketTransport:5
はソケットレベルのログ出力をとらない場合には必要ありません (デバッグしたい事柄によっては、このレベルでログを取ると無駄な出力だらけになる場合もあります)。 -
nsHostResolver:5
は、ホストリゾルバ (DNS クエリなど) のログ出力に興味がない場合は外しても構いません。 - Firefox の便利な拡張機能として Live HTTP Headers と呼ばれるものがあります。これを使うと HTTP リクエスト/レスポンスヘッダーのログのみを取ることができます。HTTP トラフィックをちょっとのぞいてみたい時にはとても手軽なツールです。
- 最後に、Mozilla に組み込まれているログ機能では単に不十分だという時があります。そういう場合にはきちんとしたパケットレースツールを使わなければなりません。Ethereal と ngrep は素晴らしいツールで Windows 用とほとんどの UNIX 用があります (筆者が最後に確認した時点では OS X 用はありませんでした)。商用のパケットトレーサーはもっと良い機能を提供するかもしれませんが、ほとんどの部分では、こういった無料のトレーサーはとてもしっかりしていて Mozilla のネットワーク上の問題をみつけるには十分な機能をもっています。
参照
- 似たようなオプションが mailnews プロトコルのデバッグ時に使えます。この文書 に mailnews のトラブルシューティングについての詳しい情報があります。
- Windows プラットフォームでは Firefox ナイトリービルドを使って FTP のログをとることができます (なぜこれが Windows だけなのかといった質問はしないでください!)。 FTP ログを有効にするには、
NSPR_LOG_MODULES=nsFtp:5
を設定するだけです (古いバージョンではnsFtp
ではなくnsFTPProtocol
にする必要があります)。
原文書の情報
- 著者: Darin Fisher
- 最終更新日: January 5, 2007
- 著作権: Portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a Creative Commons license | 詳細