⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mod_log_config.html

📁 这个是我在web培训时老师提供的手册
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="keywords" content="Apache, 中文, 手册, 中文版, 中文手册, 中文版手册, 参考手册, 中文参考手册, 金步国" />
<meta name="description" content="Apache 2.2 中文版参考手册" />
<meta name="author" content="金步国" />
<link href="../style/css/manual-zip.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-zip-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<title>mod_log_config - Apache 2.2 中文版参考手册</title>
</head>
<body><div id="page-header">
<p class="menu"><a href="../mod/index.html">模块索引</a> | <a href="../mod/directives.html">指令索引</a> | <a href="../faq/index.html">常见问题</a> | <a href="../glossary.html">词汇表</a> | <a href="../sitemap.html">站点导航</a></p><p class="apache">Apache HTTP Server 版本2.2</p><img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./index.html"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path"><a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">文档</a> &gt; <a href="../index.html">版本2.2</a> &gt; <a href="./index.html">模块</a></div>

<div id="translation-info">   <a href="../translator_announcement.html#thanks">致谢</a> | <a href="../translator_announcement.html#announcement">译者声明</a> | 本篇译者:<a href="mailto:&#099;sfr&#0097;nk&#0064;&#099;itiz&#046;n&#0101;t">金步国</a> | 本篇译稿最后更新:2006年1月26日 | <a href="../translator_announcement.html#last_new">获取最新版本</a></div>
<div id="page-content"><div id="preamble"><h1>Apache模块 mod_log_config</h1>

<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="module">
<tr><th><a href="module-dict.html#Description">说明</a></th><td>允许记录日志和定制日志文件格式</td></tr>
<tr><th><a href="module-dict.html#Status">状态</a></th><td>基本(B)</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">模块名</a></th><td>log_config_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">源文件</a></th><td>mod_log_config.c</td></tr>
</table>
<h3>概述</h3>

    <p>本模块提供了灵活的方法将客户请求记录到日志。日志可以用自定义的格式直接写入文件,或者传送到一个外部程序继续处理。条件日志功能可以实现根据请求的特征来决定一个日志信息是否被包含在最终的日志记录里面。</p>

    <p>本模块提供了三个指令:<code class="directive"><a href="#transferlog">TransferLog</a></code>指令用来指定日志文件,<code class="directive"><a href="#logformat">LogFormat</a></code>指令用来定义日志格式,<code class="directive"><a href="#customlog">CustomLog</a></code>指令可以同时完成指定日志文件和定义日志格式。<code class="directive">TransferLog</code>和<code class="directive">CustomLog</code>指令在每个服务器上都可以被多次使用,以便将同一个请求记录到多个文件中。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="formats" id="formats">定制日志文件格式</a></h2>

    <p><code class="directive"><a href="#logformat">LogFormat</a></code>和<code class="directive"><a href="#customlog">CustomLog</a></code>指令的格式化参数是一个字符串。这个字符串会在每次请求发生的时候,被记录到日志中去。它可以包含将被原样写入日志的文本字符串以及C风格的控制字符"\n"和"\t"以实现换行与制表。文本中的引号和反斜杠应通过"\"来转义。</p>

    <p>请求本身的情况将通过在格式字符串中放置各种"<code>%</code>"转义符的方法来记录,它们在写入日志文件时,根据下表的定义进行转换:</p>

<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="bordered">
<tr class="header"><th>格式字符串</th><th>描述</th></tr>
<tr><td><code>%%</code></td><td>百分号(<em>Apache2.0.44或更高的版本</em>)</td></tr>
<tr class="odd"><td><code>%a</code></td><td>远端IP地址</td></tr>
<tr><td><code>%A</code></td><td>本机IP地址</td></tr>
<tr class="odd"><td><code>%B</code></td><td>除HTTP头以外传送的字节数</td></tr>
<tr><td><code>%b</code></td><td>以CLF格式显示的除HTTP头以外传送的字节数,也就是当没有字节传送时显示'<code>-</code>'而不是0。</td></tr>
<tr class="odd"><td><code>%{<var>Foobar</var>}C</code></td><td>在请求中传送给服务端的cookie<var>Foobar</var>的内容。</td></tr>
<tr><td><code>%D</code></td><td>服务器处理本请求所用时间,以微为单位。</td></tr>
<tr class="odd"><td><code>%{<var>FOOBAR</var>}e</code></td><td>环境变量<var>FOOBAR</var>的值</td></tr>
<tr><td><code>%f</code></td><td>文件名</td></tr>
<tr class="odd"><td><code>%h</code></td><td>远端主机</td></tr>
<tr><td><code>%H</code></td><td>请求使用的协议</td></tr>
<tr class="odd"><td><code>%{<var>Foobar</var>}i</code></td><td>发送到服务器的请求头<code><var>Foobar:</var></code>的内容。</td></tr>
<tr><td><code>%l</code></td><td>远端登录名(由identd而来,如果支持的话),除非<code class="directive"><a href="../mod/core.html#identitycheck">IdentityCheck</a></code>设为&quot;<code>On</code>&quot;,否则将得到一个&quot;-&quot;。</td></tr>
<tr class="odd"><td><code>%m</code></td><td>请求的方法</td></tr>
<tr><td><code>%{<var>Foobar</var>}n</code></td><td>来自另一个模块的注解<code><var>Foobar</var></code>的内容。</td></tr>
<tr class="odd"><td><code>%{<var>Foobar</var>}o</code></td><td>应答头<code><var>Foobar</var>:</code>的内容。</td></tr>
<tr><td><code>%p</code></td><td>服务器服务于该请求的标准端口。</td></tr>
<tr class="odd"><td><code>%P</code></td><td>为本请求提供服务的子进程的PID。</td></tr>
<tr><td><code>%{<var>format</var>}P</code></td><td>服务于该请求的PID或TID(线程ID),<code><var>format</var></code>的取值范围为:<code>pid</code>和<code>tid</code>(<em>2.0.46及以后版本</em>)以及<code>hextid</code>(需要APR1.2.0及以上版本)</td></tr>
<tr class="odd"><td><code>%q</code></td><td>查询字符串(若存在则由一个&quot;<code>?</code>&quot;引导,否则返回空串)</td></tr>
<tr><td><code>%r</code></td><td class="odd">请求的第一行</td></tr>
<tr class="odd"><td><code>%s</code></td><td>状态。对于内部重定向的请求,这个状态指的是<em>原始</em>请求的状态,---<code>%&gt;s</code>则指的是最后请求的状态。</td></tr>
<tr><td><code>%t</code></td><td class="odd">时间,用普通日志时间格式(标准英语格式)</td></tr>
<tr class="odd"><td><code>%{<var>format</var>}t</code></td><td>时间,用<code>strftime(3)</code>指定的格式表示的时间。(默认情况下按本地化格式)</td></tr>
<tr><td><code>%T</code></td><td class="odd">处理完请求所花时间,以秒为单位。</td></tr>
<tr class="odd"><td><code>%u</code></td><td>远程用户名(根据验证信息而来;如果返回status(<code>%s</code>)为401,可能是假的)</td></tr>
<tr><td><code>%U</code></td><td class="odd">请求的URL路径,不包含查询字符串。</td></tr>
<tr class="odd"><td><code>%v</code></td><td>对该请求提供服务的标准<code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>。</td></tr>
<tr><td><code>%V</code></td><td class="odd">根据<code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code>指令设定的服务器名称。</td></tr>
<tr class="odd"><td><code>%X</code></td><td>请求完成时的连接状态:<table border="1" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
<tr><td><code>X</code>=</td><td>连接在应答完成前中断。</td></tr>
<tr><td><code>+</code>=</td><td>应答传送完后继续保持连接。</td></tr>
<tr><td><code>-</code>=</td><td>应答传送完后关闭连接。</td></tr>
</table><p>(在1.3以后的版本中,这个指令是<code>%c</code>,但这样就和过去的SSL语法:<code>%{<var>var</var>}c</code>冲突了)</p></td></tr>
<tr><td><code>%I</code></td><td class="odd">接收的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用<code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>模块。</td></tr>
<tr class="odd"><td><code>%O</code></td><td>发送的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用<code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>模块。</td></tr>
</table>

    <h3><a name="modifiers" id="modifiers">修饰符</a></h3>

      <p>可以紧跟在"%"后面加上一个逗号分隔的状态码列表来限制记录的条目。例如,"<code>%400,501{User-agent}i</code>"只记录状态码400和501发生时的<code>User-agent</code>头内容;不满足条件时用"<code>-</code>"代替。状态码前还可以加上"<code>!</code>"前缀表示否定,"<code>%!200,304,302{Referer}i</code>"记录所有<em>不同于</em>200,304,302的状态码发生时的<code>Referer</code>头内容。</p>

      <p>"&lt;"和"&gt;"修饰符可以用来指定对于已被内部重定向的请求是选择原始的请求还是选择最终的请求。默认情况下,<code>%s, %U, %T, %D, %r</code> 使用原始请求,而所有其他格式串则选择最终请求。例如,<code>%&gt;s</code> 可以用于记录请求的最终状态,而 <code>%&lt;u</code> 则记录一个已经被内部重定向到非认证资源的请求的原始认证用户。</p>

    

    <h3><a name="format-notes" id="format-notes">一些说明</a></h3>

      <p>出于安全考虑,从2.0.46版本开始,<code>%r</code>, <code>%i</code>, <code>%o</code> 中的特殊字符,除了双引号(")和反斜线(\)分别用 <code>\"</code> 和 <code>\\</code> 进行转义、空白字符用C风格(<code>\n</code>, <code>\t</code> 等)进行转义以外,非打印字符和其它特殊字符使用 <code>\x<var>hh</var></code> 格式进行转义(<var>hh</var>是该字符的16进制编码)。在2.0.46以前的版本中,这些内容会被完整的按原样记录。这种做法将导致客户端可以在日志中插入控制字符,所以你在处理这些日志文件的时候要特别小心。</p>

      <p>在2.0版本中(不同于1.3),<code>%b</code> 和 <code>%B</code> 格式字符串并不表示发送到客户端的字节数,而只是简单的表示HTTP应答字节数(在连接中断或使用SSL时与前者有所不同)。<code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>提供的 <code>%O</code> 格式字符串将会记录发送的实际字节数。</p>

    

    <h3><a name="examples" id="examples">示例</a></h3>

      <p>一些常见的格式串:</p>

      <dl>
        <dt>通用日志格式(CLF)</dt>
        <dd><code>"%h %l %u %t \"%r\" %&gt;s %b"</code></dd>

        <dt>带虚拟主机的通用日志格式</dt>
        <dd><code>"%v %h %l %u %t \"%r\" %&gt;s %b"</code></dd>

        <dt>NCSA扩展/组合日志格式</dt>
        <dd><code>"%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""</code></dd>

        <dt>Referer日志格式</dt>
        <dd><code>"%{Referer}i -&gt; %U"</code></dd>

        <dt>Agent(Browser)日志格式</dt>
        <dd><code>"%{User-agent}i"</code></dd>
      </dl>
    
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="security" id="security">安全考虑</a></h2>
    <p>如果放置日志文件的目录对除启动Apache服务以外的其他用户可写,可能会对系统的安全性造成威胁,具体的讨论请参见<a href="../misc/security_tips.html#serverroot">安全方面的提示</a>。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a> <a name="bufferedlogs" id="bufferedlogs">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>在将日志写入磁盘前先在内存中进行缓冲</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>BufferedLogs On|Off</code></td></tr>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -