📄 logs.html.en
字号:
analysis programs. The log file entries produced in CLF will
look something like this:</p>
<div class="example"><p><code>
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
/apache_pb.gif HTTP/1.0" 200 2326
</code></p></div>
<p>Each part of this log entry is described below.</p>
<dl>
<dt><code>127.0.0.1</code> (<code>%h</code>)</dt>
<dd>This is the IP address of the client (remote host) which
made the request to the server. If <code class="directive"><a href="./mod/core.html#hostnamelookups">HostnameLookups</a></code> is
set to <code>On</code>, then the server will try to determine
the hostname and log it in place of the IP address. However,
this configuration is not recommended since it can
significantly slow the server. Instead, it is best to use a
log post-processor such as <code class="program"><a href="./programs/logresolve.html">logresolve</a></code> to determine
the hostnames. The IP address reported here is not
necessarily the address of the machine at which the user is
sitting. If a proxy server exists between the user and the
server, this address will be the address of the proxy, rather
than the originating machine.</dd>
<dt><code>-</code> (<code>%l</code>)</dt>
<dd>The "hyphen" in the output indicates that the requested
piece of information is not available. In this case, the
information that is not available is the RFC 1413 identity of
the client determined by <code>identd</code> on the client's
machine. This information is highly unreliable and should
almost never be used except on tightly controlled internal
networks. Apache httpd will not even attempt to determine
this information unless <code class="directive"><a href="./mod/core.html#identitycheck">IdentityCheck</a></code> is set
to <code>On</code>.</dd>
<dt><code>frank</code> (<code>%u</code>)</dt>
<dd>This is the userid of the person requesting the document
as determined by HTTP authentication. The same value is
typically provided to CGI scripts in the
<code>REMOTE_USER</code> environment variable. If the status
code for the request (see below) is 401, then this value
should not be trusted because the user is not yet
authenticated. If the document is not password protected,
this entry will be "<code>-</code>" just like the previous
one.</dd>
<dt><code>[10/Oct/2000:13:55:36 -0700]</code>
(<code>%t</code>)</dt>
<dd>
The time that the request was received.
The format is:
<p class="indent">
<code>[day/month/year:hour:minute:second zone]<br />
day = 2*digit<br />
month = 3*letter<br />
year = 4*digit<br />
hour = 2*digit<br />
minute = 2*digit<br />
second = 2*digit<br />
zone = (`+' | `-') 4*digit</code>
</p>
It is possible to have the time displayed in another format
by specifying <code>%{format}t</code> in the log format
string, where <code>format</code> is as in
<code>strftime(3)</code> from the C standard library.
</dd>
<dt><code>"GET /apache_pb.gif HTTP/1.0"</code>
(<code>\"%r\"</code>)</dt>
<dd>The request line from the client is given in double
quotes. The request line contains a great deal of useful
information. First, the method used by the client is
<code>GET</code>. Second, the client requested the resource
<code>/apache_pb.gif</code>, and third, the client used the
protocol <code>HTTP/1.0</code>. It is also possible to log
one or more parts of the request line independently. For
example, the format string "<code>%m %U%q %H</code>" will log
the method, path, query-string, and protocol, resulting in
exactly the same output as "<code>%r</code>".</dd>
<dt><code>200</code> (<code>%>s</code>)</dt>
<dd>This is the status code that the server sends back to the
client. This information is very valuable, because it reveals
whether the request resulted in a successful response (codes
beginning in 2), a redirection (codes beginning in 3), an
error caused by the client (codes beginning in 4), or an
error in the server (codes beginning in 5). The full list of
possible status codes can be found in the <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">HTTP
specification</a> (RFC2616 section 10).</dd>
<dt><code>2326</code> (<code>%b</code>)</dt>
<dd>The last entry indicates the size of the object returned
to the client, not including the response headers. If no
content was returned to the client, this value will be
"<code>-</code>". To log "<code>0</code>" for no content, use
<code>%B</code> instead.</dd>
</dl>
<h3><a name="combined" id="combined">Combined Log Format</a></h3>
<p>Another commonly used format string is called the Combined
Log Format. It can be used as follows.</p>
<div class="example"><p><code>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
\"%{User-agent}i\"" combined<br />
CustomLog log/access_log combined
</code></p></div>
<p>This format is exactly the same as the Common Log Format,
with the addition of two more fields. Each of the additional
fields uses the percent-directive
<code>%{<em>header</em>}i</code>, where <em>header</em> can be
any HTTP request header. The access log under this format will
look like:</p>
<div class="example"><p><code>
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
/apache_pb.gif HTTP/1.0" 200 2326
"http://www.example.com/start.html" "Mozilla/4.08 [en]
(Win98; I ;Nav)"
</code></p></div>
<p>The additional fields are:</p>
<dl>
<dt><code>"http://www.example.com/start.html"</code>
(<code>\"%{Referer}i\"</code>)</dt>
<dd>The "Referer" (sic) HTTP request header. This gives the
site that the client reports having been referred from. (This
should be the page that links to or includes
<code>/apache_pb.gif</code>).</dd>
<dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code>
(<code>\"%{User-agent}i\"</code>)</dt>
<dd>The User-Agent HTTP request header. This is the
identifying information that the client browser reports about
itself.</dd>
</dl>
<h3><a name="multiple" id="multiple">Multiple Access Logs</a></h3>
<p>Multiple access logs can be created simply by specifying
multiple <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>
directives in the configuration
file. For example, the following directives will create three
access logs. The first contains the basic CLF information,
while the second and third contain referer and browser
information. The last two <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> lines show how
to mimic the effects of the <code>ReferLog</code> and <code>AgentLog</code> directives.</p>
<div class="example"><p><code>
LogFormat "%h %l %u %t \"%r\" %>s %b" common<br />
CustomLog logs/access_log common<br />
CustomLog logs/referer_log "%{Referer}i -> %U"<br />
CustomLog logs/agent_log "%{User-agent}i"
</code></p></div>
<p>This example also shows that it is not necessary to define a
nickname with the <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> directive. Instead,
the log format can be specified directly in the <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> directive.</p>
<h3><a name="conditional" id="conditional">Conditional Logs</a></h3>
<p>There are times when it is convenient to exclude certain
entries from the access logs based on characteristics of the
client request. This is easily accomplished with the help of <a href="env.html">environment variables</a>. First, an
environment variable must be set to indicate that the request
meets certain conditions. This is usually accomplished with
<code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>. Then the
<code>env=</code> clause of the <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> directive is used to
include or exclude requests where the environment variable is
set. Some examples:</p>
<div class="example"><p><code>
# Mark requests from the loop-back interface<br />
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog<br />
# Mark requests for the robots.txt file<br />
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -