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

<!--
 Copyright 2004-2005 The Apache Software Foundation or its licensors, as
 applicable.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_dumpio.xml.meta">

<name>mod_dumpio</name>
<description>Dumps all I/O to error log as desired.</description>
<status>Extension</status>
<sourcefile>mod_dumpio.c</sourcefile>
<identifier>dumpio_module</identifier>

<summary>
    <p><code>mod_dumpio</code> allows for the logging of
    all input received by Apache and/or all output sent by
    Apache to be logged (dumped) to the error.log file.
    </p>

    <p>The data logging is done right after SSL decoding (for
    input) and right before SSL encoding (for output). As can
    be expected, this can produce extreme volumes of data,
    and should only be used when debugging problems.</p>
</summary>

<section id="enable">
    <title>Enabling dumpio Support</title>

    <p>To enable the module, it should be compiled and
    loaded in to your running Apache configuration. Logging
    can then be enabled or disabled via the below directives.</p>
</section>

<directivesynopsis>

<name>DumpIOInput</name>
<description>Dump all input data to the error log</description>
<syntax>DumpIOInput On|Off</syntax>
<default>DumpIOInput Off</default>
<contextlist><context>server config</context></contextlist>
<compatibility>DumpIOInput is only available in Apache 2.1.3 and 
later.</compatibility>

<usage>
    <p>Enable dumping of all input.</p>

    <example><title>Example</title>
      DumpIOInput On
    </example>
</usage>

</directivesynopsis>

<directivesynopsis>

<name>DumpIOOutput</name>
<description>Dump all output data to the error log</description>
<syntax>DumpIOOutput On|Off</syntax>
<default>DumpIOOutput Off</default>
<contextlist><context>server config</context></contextlist>
<compatibility>DumpIOOutput is only available in Apache 2.1.3 and 
later.</compatibility>

<usage>
    <p>Enable dumping of all output.</p>

    <example><title>Example</title>
      DumpIOOutput On
    </example>
</usage>

</directivesynopsis>
</modulesynopsis>
