<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<modulesynopsis>

<name>mod_logio</name>
<description>Logging of input and output bytes per request</description>
<status>Base</status>
<sourcefile>mod_logio.c</sourcefile>
<identifier>logio_module</identifier>

<summary>

    <p>This module provides the logging of input and output number of
    bytes received/sent per request. The numbers reflect the actual bytes
    as received on the network, which then takes into account the
    headers and bodies of requests and responses. The counting is done
    before SSL/TLS on input and after SSL/TLS on output, so the numbers
    will correctly reflect any changes made by encryption.</p>

    <p>This module requires <module>mod_log_config</module>.</p>

</summary>

<seealso><module>mod_log_config</module></seealso>
<seealso><a href="../logs.html">Apache Log Files</a></seealso>

<section id="formats">
<title>Custom Log Formats</title>

    <p>This modules adds two new logging directives. The characteristics of the
    request itself are logged by placing "<code>%</code>" directives in
    the format string, which are replaced in the log file by the values as
    follows:</p>

    <table border="1" style="zebra">
    <tr><th>Format&nbsp;String</th>
        <th>Description</th></tr>

    <tr><td><code>%...I</code></td>
        <td>Bytes received, including request and headers, cannot be
        zero.</td></tr>

    <tr><td><code>%...O</code></td>
        <td>Bytes sent, including headers, cannot be zero.</td></tr>
    </table>

    <p>Usually, the functionality is used like this:</p>

    <dl>
      <dt>Combined I/O log format:</dt>
      <dd><code>"%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\"
      \"%{User-agent}i\" %I %O"</code></dd>
    </dl>
</section>

</modulesynopsis>
