mozilla

Compare Revisions

HTTP logging

Change Revisions

Revision 13743:

Revision 13743 by Sid0 on

Revision 13744:

Revision 13744 by Agradman on

Title:
HTTP Logging
HTTP Logging
Slug:
HTTP_Logging
HTTP_Logging
Tags:
Necko
Necko
Content:

Revision 13743
Revision 13744
n8      Ok, so you suspect that Mozilla's HTTP layer is behaving ban8      This page contains instructions for how to use Mozilla
>dly, or perhaps someone asked you to capture a HTTP log. What do >'s builtin logging facility to capture HTTP activity in Firefox. 
>you do? You can set some environment variables before running Fir> The presentation is designed for people who are unfami
>efox to capture a log of HTTP activity. Follow these steps for yo>liar with Mozilla (or computers in general).  If you are suc
>ur particular platform:>h a person, simply look at the "Logging all HTTP activity" s
 >ection below.
9    </p>
10    <p>
11      If you are referring such a person to this page and you wan
 >t them to perform variations on these generic instructions, pleas
 >e make clear to them where you want them to do so. &nbsp;The "Exc
 >luding specific portions of HTTP activity" section below provides
 > some&nbsp;common variations for focusing the log on specific por
 >tions of HTTP activity (e.g. HTTP request/response headers,&nbsp;
 >socket level log output, or host resolver log output).
12    </p>
13    <p>
14      Non-novices can find more information on HTTP debugging in 
 >the "See also" section.&nbsp;
n11      Enabling HTTP loggingn17      Logging all HTTP activity
n17      Make sure Firefox is not running. Then open a command prompn23      1. Make sure Firefox is not running.
>t, and type the following (this example assumes that you have ins 
>talled Firefox in the default location on 32-bit Windows. The def 
>ault location is <code>C:\Program Files (x86)\Mozilla Firefox</co 
>de> on 64-bit Windows): 
n19    <pre>n
20C:\&gt; set NSPR_LOG_MODULES=nsHttp:5,nsSocketTransport:5,nsHostR
>esolver:5 
21C:\&gt; set NSPR_LOG_FILE=%TEMP%\log.txt
22 
23C:\&gt; cd "Program Files\Mozilla Firefox"
24C:\Program Files\Mozilla Firefox\&gt; .\firefox.exe
25</pre>
n27      Now reproduce whatever problem you're trying to debug, and n26      2. Open a command prompt, i.e. the "run" program. (<a class
>when you are done exit Firefox and look for the generated log fil>=" external" href="http://commandwindows.com/runline.htm" title="
>e: <code>log.txt</code> in your temp directory (you can type <cod>http://commandwindows.com/runline.htm">Instructions for XP</a>, <
>e>%TEMP%</code> directly into Explorer's location bar to get to y>a class=" external" href="http://www.xp-vista.com/other/where-is-
>our temp directory).>run-in-windows-vista" title="http://www.xp-vista.com/other/where-
 >is-run-in-windows-vista">Instructions for Vista</a>.)
27    </p>
28    <p>
29      3. Copy-paste each of the following underlined lines into t
 >he "run" prompt, hitting enter between each:
30    </p>
31    <ul>
32      <li>
33        <u>C:\&gt; set NSPR_LOG_MODULES=nsHttp:5,nsSocketTranspor
 >t:5,nsHostResolver:5</u>
34      </li>
35      <li>
36        <u>C:\&gt; set NSPR_LOG_FILE=%TEMP%\log.txt</u>
37      </li>
38      <li>
39        <u>C:\&gt; cd "Program Files\Mozilla Firefox"</u>
40      </li>
41    </ul>
42    <p>
43      4. Now open Firefox. &nbsp;You can do this by typing the lo
 >cation of Firefox into the run line. &nbsp;By default, Firefox in
 >stalls to the following location:
44    </p>
45    <ul>
46      <li>For&nbsp;32-bit Windows, <u>C:\Program Files\Mozilla Fi
 >refox\&gt; .\firefox.exe</u>
47      </li>
48      <li>For 64-bit Windows,&nbsp;<u>C:\Program Files (x86)\Mozi
 >lla Firefox\&gt; .\firefox.exe</u>
49      </li>
50    </ul>
51    <p>
52      5. Reproduce whatever problem you're trying to debug.
53    </p>
54    <p>
55      6. When the problem appears, exit Firefox and look for the 
 >generated log file: <code>log.txt</code> in your temp directory (
 >you can type <code>%TEMP%</code> directly into Explorer's locatio
 >n bar to get to your temp directory).
n33      Make sure Firefox is not running. Then open a new shell (exn61      1. Make sure Firefox is not running.
>ample assumes bash compatible), and type the following: 
n35    <pre>n
36bash$ export NSPR_LOG_MODULES=nsHttp:5,nsSocketTransport:5,nsHost
>Resolver:5 
37bash$ export NSPR_LOG_FILE=/tmp/log.txt
38 
39bash$ cd /path/to/firefox
40bash$ ./firefox
41</pre>
n43      Now reproduce whatever problem you're trying to debug, and n64      2. Open a new shell (example assumes bash compatible)
>when you are done exit Firefox and look for the generated log fil 
>e: <code>/tmp/log.txt</code> 
65    </p>
66    <p>
67      3.&nbsp;Copy-paste, into the shell, each of the following u
 >nderlined lines, hitting enter between each:
68    </p>
69    <ul>
70      <li>
71        <u>export NSPR_LOG_MODULES=nsHttp:5,nsSocketTransport:5,n
 >sHostResolver:5</u>
72      </li>
73      <li>
74        <u>export NSPR_LOG_FILE=/tmp/log.txt</u>
75      </li>
76      <li>
77        <u>cd /path/to/firefox</u>
78      </li>
79    </ul>
80    <p>
81      4.&nbsp;Now open Firefox. &nbsp;You can do this by typing&n
 >bsp;<u><span class="Apple-style-span" style="font-family: 'Courie
 >r New', 'Andale Mono', monospace; font-size: 12px; line-height: n
 >ormal; white-space: pre;">./firefox</span></u><span class="Apple-
 >style-span" style="font-family: 'Courier New', 'Andale Mono', mon
 >ospace; font-size: 12px; line-height: normal; white-space: pre;">
 ><span class="Apple-style-span" style="font-family: Verdana, Tahom
 >a, sans-serif; font-size: 14px; white-space: normal; line-height:
 > 23px;">&nbsp;into the shell.</span></span>
82    </p>
83    <p>
84      5.&nbsp;Reproduce whatever problem you're trying to debug.
85    </p>
86    <p>
87      6. When the problem appears, exit Firefox and look for the 
 >generated log file:&nbsp;<span class="Apple-style-span" style="fo
 >nt-family: monospace, Tahoma, sans-serif;">/tmp/log.txt</span>
n49      Make sure Firefox is not running. Then run the Terminal appn93      1. Make sure Firefox is not running.
>lication (found under the Utilities application group), and type  
>the following commands (this example assumes that you have instal 
>led Firefox on your desktop and that you are using the default OS 
> X command shell, bash): 
n51    <pre>n
52hellomac:~ John$ export NSPR_LOG_MODULES=nsHttp:5,nsSocketTranspo
>rt:5,nsHostResolver:5 
53hellomac:~ John$ export NSPR_LOG_FILE=~/log.txt
54 
55hellomac:~ John$ cd /Applications/Firefox.app/Contents/MacOS
56hellomac:/Applications/Firefox.app/Contents/MacOS John$ ./firefox
>-bin 
57</pre>
n59      Now reproduce whatever problem you're trying to debug, and n96      2. Run the Terminal application (found under the Utilities 
>when you are done exit Firefox and look for the generated log fil>application group)
>e <code>log.txt</code> in your home directory. NOTE: the generate 
>d log file will have UNIX style line endings, so if you want to v 
>iew it you will need to use an editor that can handled a UNIX sty 
>le text file. 
nn98    <p>
99      3.&nbsp;Copy-paste each of the following underlined lines i
 >nto terminal, hitting enter between each:
100    </p>
101    <ul>
102      <li>
103        <u><span class="Apple-style-span" style="font-family: 'Co
 >urier New', 'Andale Mono', monospace; font-size: 12px; line-heigh
 >t: normal; white-space: pre;">export NSPR_LOG_MODULES=nsHttp:5,ns
 >SocketTransport:5,nsHostResolver:5</span></u>
104      </li>
105      <li>
106        <u><span class="Apple-style-span" style="font-family: 'Co
 >urier New', 'Andale Mono', monospace; font-size: 12px; line-heigh
 >t: normal; white-space: pre;">export NSPR_LOG_FILE=~/log.txt</spa
 >n></u>
107      </li>
108      <li>
109        <span class="Apple-style-span" style="font-family: 'Couri
 >er New', 'Andale Mono', monospace; font-size: 12px; line-height: 
 >normal; white-space: pre;"><span class="Apple-style-span" style="
 >font-family: Verdana, Tahoma, sans-serif; font-size: 14px; white-
 >space: normal; line-height: 23px;">Assuming you've installed Fire
 >fox on your desktop,</span></span> <u><span class="Apple-style-sp
 >an" style="font-family: 'Courier New', 'Andale Mono', monospace; 
 >font-size: 12px; line-height: normal; white-space: pre;">cd /Appl
 >ications/Firefox.app/Contents/MacOS</span></u>
110      </li>
111    </ul>
112    <p>
113      4. Now open Firefox. &nbsp;You can do this by typing&nbsp;<
 >u><span class="Apple-style-span" style="font-family: 'Courier New
 >', 'Andale Mono', monospace; font-size: 12px; line-height: normal
 >; white-space: pre;">./firefox-bin</span></u><span class="Apple-s
 >tyle-span" style="font-family: 'Courier New', 'Andale Mono', mono
 >space; font-size: 12px; line-height: normal; white-space: pre;"><
 >span class="Apple-style-span" style="font-family: Verdana, Tahoma
 >, sans-serif; font-size: 14px; white-space: normal; line-height: 
 >23px;">&nbsp;into Terminal.</span></span>
114    </p>
115    <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 
 >1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; pa
 >dding-bottom: 0px; padding-left: 0px;">
116      5.&nbsp;Reproduce whatever problem you're trying to debug.
117    </p>
118    <p>
119      6. When the problem appears, exit Firefox and look for the&
 >nbsp;generated log file <code>log.txt</code> in your home directo
 >ry.
120    </p>
121    <ul>
122      <li>NOTE: the generated log file will have UNIX style line 
 >endings, so if you want to view it you will need to use an editor
 > that can handled a UNIX style text file.
123      </li>
124    </ul>
n62      Other optionsn126      Excluding specific portions of HTTP activity
n65      <li>If you were only interested in logging HTTP request/resn129      <li>If you are only interested in logging HTTP request/resp
>ponse headers, then set <code>NSPR_LOG_MODULES=nsHttp:3</code> on>onse headers:
>ly. 
130        <ul>
131          <li>Option one: replace&nbsp;NSPR_LOG_MODULES=nsHttp:5&
 >nbsp;with&nbsp;<code style="color: rgb(37, 34, 29); font-weight: 
 >inherit;">NSPR_LOG_MODULES=nsHttp:3</code>
132          </li>
133          <li>Option two: There is also a handy extension for Fir
 >efox called&nbsp;<a class="link-https" href="https://addons.mozil
 >la.org/firefox/addon/3829">Live HTTP Headers</a>&nbsp;that can be
 > used to capture only the HTTP request/response headers. It is a 
 >very handy tool in cases where you want to just peek at HTTP traf
 >fic.
134          </li>
135        </ul>
nn137      <li>If you are not interested in socket level log output (p
 >erhaps because you are debugging something that is accompanied by
 > a lot of noise at this level):
138        <ul>
67      <li>139          <li>
68        <code>nsSocketTransport:5</code> can be removed if you ar140            <code style="color: rgb(37, 34, 29); font-weight: inh
>e not interested in socket level log output (there can be a lot o>erit;">Remove&nbsp;nsSocketTransport:5</code>&nbsp;
>f noise from logging at this level depending on what you are tryi 
>ng to debug). 
141          </li>
142        </ul>
nn144      <li>If you are not interested in host resolver log output (
 >i.e., DNS queries):
145        <ul>
70      <li>146          <li>
71        <code>nsHostResolver:5</code> can be removed if you are n147            <code style="color: rgb(37, 34, 29); font-weight: inh
>ot interested in host resolver log output (i.e., DNS queries).>erit;">Remove&nbsp;nsHostResolver:5</code>
72      </li>148          </li>
73      <li>There is also a handy extension for Firefox called <a c
>lass="link-https" href="https://addons.mozilla.org/firefox/addon/ 
>3829">Live HTTP Headers</a> that can be used to capture only the  
>HTTP request/response headers. It is a very handy tool in cases w 
>here you want to just peek at HTTP traffic. 
74      </li>149        </ul>
75      <li>Finally, there are times when the builtin logging facil
>ity of Mozilla is simply not sufficient, and one must resort to a 
> full fledged packet tracing tool. <a class="external" href="http 
>://www.ethereal.com/">Ethereal</a> and <a class="external" href=" 
>http://ngrep.sourceforge.net/">ngrep</a> are two excellent tools  
>available for Windows and most flavors of UNIX (not including OSX 
> last I checked). Commercially available packet tracers may offer 
> better features, but for the most part these freely available tr 
>acers are rock solid and offer enough features to help uncover an 
>y Mozilla networking problem. 
n81    <ul>n155    <p>
156      &nbsp;
157    </p>
158    <ul style="margin-top: 0px; margin-right: 0px; margin-bottom:
 > 1.7em; margin-left: 25px; padding-top: 0px; padding-right: 0px; 
 >padding-bottom: 0px; padding-left: 0px;">
82      <li>There are similar options available to debug mailnews p159      <li style="margin-bottom: 0.25em;">There are similar option
>rotocols. See <a class="external" href="http://www.mozilla.org/qu>s available to debug mailnews protocols. See&nbsp;<a class="exter
>ality/mailnews/mail-troubleshoot.html">this document</a> for more>nal" href="http://www.mozilla.org/quality/mailnews/mail-troublesh
> info about mailnews troubleshooting.>oot.html">this document</a>&nbsp;for more info about mailnews tro
 >ubleshooting.
n84      <li>On the windows platform, nightly Firefox builds have FTn161      <li style="margin-bottom: 0.25em;">On the windows platform,
>P logging enabled. (Don't ask why this is only the case for windo> nightly Firefox builds have FTP logging enabled. (Don't ask why 
>ws!) To enable FTP logging, just set <code>NSPR_LOG_MODULES=nsFtp>this is only the case for windows!) To enable FTP logging, just s
>:5</code> (in older versions of Mozilla, you need to use <code>ns>et&nbsp;<code style="color: rgb(37, 34, 29); font-weight: inherit
>FTPProtocol</code> instead of <code>nsFtp</code>).>;">NSPR_LOG_MODULES=nsFtp:5</code>&nbsp;(in older versions of Moz
 >illa, you need to use&nbsp;<code style="color: rgb(37, 34, 29); f
 >ont-weight: inherit;">nsFTPProtocol</code>&nbsp;instead of&nbsp;<
 >code style="color: rgb(37, 34, 29); font-weight: inherit;">nsFtp<
 >/code>).
162      </li>
163      <li style="margin-bottom: 0.25em;">When the builtin logging
 > facility of Mozilla is simply not sufficient, and you need a ful
 >l fledged packet tracing tool,&nbsp;two free products are&nbsp;<a
 > class="external" href="http://www.ethereal.com/">Ethereal</a>&nb
 >sp;and&nbsp;<a class="external" href="http://ngrep.sourceforge.ne
 >t/">ngrep</a>. They&nbsp;available for Windows and most flavors o
 >f UNIX (not including OSX last I checked),&nbsp;are rock solid, a
 >nd offer enough features to help uncover any Mozilla networking p
 >roblem.
nn166    <p>
167      &nbsp;
168    </p>
tt182    <p>
100    <div class="noinclude"></div>{{ languages( { "ja": "ja/HTTP_L183      {{ languages( { "ja": "ja/HTTP_Logging" } ) }}
>ogging" } ) }} 
184    </p>

Back to History