]> granicus.if.org Git - apache/commitdiff
mod_ext_filter: Remove DebugLevel option in favor of per-module loglevel
authorStefan Fritsch <sf@apache.org>
Sat, 28 May 2011 18:28:57 +0000 (18:28 +0000)
committerStefan Fritsch <sf@apache.org>
Sat, 28 May 2011 18:28:57 +0000 (18:28 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1128732 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
docs/manual/mod/mod_ext_filter.html.en
docs/manual/mod/mod_ext_filter.xml
docs/manual/mod/quickreference.html.de
docs/manual/mod/quickreference.html.en
docs/manual/mod/quickreference.html.es
docs/manual/mod/quickreference.html.tr.utf8
docs/manual/mod/quickreference.html.zh-cn
docs/manual/upgrading.html.en
docs/manual/upgrading.xml
modules/filters/mod_ext_filter.c

diff --git a/CHANGES b/CHANGES
index 626ecc3102700028a82c3d5c68042d7c87616a7d..eea1479c00aa1ccb36e3b487b48a15cbdaaa5218 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 
 Changes with Apache 2.3.13
 
+  *) mod_ext_filter: Remove DebugLevel option in favor of per-module loglevel.
+     [Stefan Fritsch]
+
   *) mod_include: Make the "#if expr" element use the new "ap_expr" expression
      parser. The old parser can still be used by setting the new directive
      SSILegacyExprParser. [Stefan Fritsch]
index 3941666ea838e30ea90799f0973df9b2831ee53e..8f1c69c1454ddd04b906be424027c8dd813e35b3 100644 (file)
@@ -95,10 +95,6 @@ delivery to the client</td></tr>
           # files to text/c<br />
           AddType text/c .c<br />
           <br />
-          # mod_ext_filter directive to set the debug<br />
-          # level just high enough to see a log message<br />
-          # per request showing the configuration in force<br />
-          ExtFilterOptions DebugLevel=1<br />
         </span>
         &lt;/Directory&gt;
       </code></p></div>
@@ -321,7 +317,7 @@ delivery to the client</td></tr>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ExtFilterOptions <var>option</var> [<var>option</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ExtFilterOptions DebugLevel=0 NoLogStderr</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ExtFilterOptions NoLogStderr</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ext_filter</td></tr>
@@ -331,23 +327,6 @@ delivery to the client</td></tr>
     <var>Option</var> can be one of</p>
 
     <dl>
-      <dt><code>DebugLevel=<var>n</var></code></dt>
-
-      <dd>
-        The <code>DebugLevel</code> keyword allows you to specify
-        the level of debug messages generated by
-        <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>. By default, no debug messages
-        are generated. This is equivalent to
-        <code>DebugLevel=0</code>. With higher numbers, more debug
-        messages are generated, and server performance will be
-        degraded. The actual meanings of the numeric values are
-        described with the definitions of the DBGLVL_ constants
-        near the beginning of <code>mod_ext_filter.c</code>. 
-
-        <p>Note: The core directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> should be used to cause debug messages to
-        be stored in the Apache error log.</p>
-      </dd>
-
       <dt><code>LogStderr | NoLogStderr</code></dt>
 
       <dd>The <code>LogStderr</code> keyword specifies that
@@ -363,12 +342,11 @@ delivery to the client</td></tr>
     </dl>
 
     <div class="example"><h3>Example</h3><p><code>
-      ExtFilterOptions LogStderr DebugLevel=0
+      ExtFilterOptions LogStderr
     </code></p></div>
 
     <p>Messages written to the filter's standard error will be stored
-    in the Apache error log. No debug messages will be generated by
-    <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>. </p>
+    in the Apache error log.</p>
 
 </div>
 </div>
index 250100212e08ae5b5b5507dff38ab2b6786db08a..1d0e206593f7713b8300976de2c4f932e514fd1c 100644 (file)
@@ -81,10 +81,6 @@ delivery to the client</description>
           # files to text/c<br />
           AddType text/c .c<br />
           <br />
-          # mod_ext_filter directive to set the debug<br />
-          # level just high enough to see a log message<br />
-          # per request showing the configuration in force<br />
-          ExtFilterOptions DebugLevel=1<br />
         </indent>
         &lt;/Directory&gt;
       </example>
@@ -307,7 +303,7 @@ delivery to the client</description>
 <name>ExtFilterOptions</name>
 <description>Configure <module>mod_ext_filter</module> options</description>
 <syntax>ExtFilterOptions <var>option</var> [<var>option</var>] ...</syntax>
-<default>ExtFilterOptions DebugLevel=0 NoLogStderr</default>
+<default>ExtFilterOptions NoLogStderr</default>
 <contextlist><context>directory</context></contextlist>
 
 <usage>
@@ -316,24 +312,6 @@ delivery to the client</description>
     <var>Option</var> can be one of</p>
 
     <dl>
-      <dt><code>DebugLevel=<var>n</var></code></dt>
-
-      <dd>
-        The <code>DebugLevel</code> keyword allows you to specify
-        the level of debug messages generated by
-        <module>mod_ext_filter</module>. By default, no debug messages
-        are generated. This is equivalent to
-        <code>DebugLevel=0</code>. With higher numbers, more debug
-        messages are generated, and server performance will be
-        degraded. The actual meanings of the numeric values are
-        described with the definitions of the DBGLVL_ constants
-        near the beginning of <code>mod_ext_filter.c</code>. 
-
-        <p>Note: The core directive <directive module="core"
-        >LogLevel</directive> should be used to cause debug messages to
-        be stored in the Apache error log.</p>
-      </dd>
-
       <dt><code>LogStderr | NoLogStderr</code></dt>
 
       <dd>The <code>LogStderr</code> keyword specifies that
@@ -349,12 +327,11 @@ delivery to the client</description>
     </dl>
 
     <example><title>Example</title>
-      ExtFilterOptions LogStderr DebugLevel=0
+      ExtFilterOptions LogStderr
     </example>
 
     <p>Messages written to the filter's standard error will be stored
-    in the Apache error log. No debug messages will be generated by
-    <module>mod_ext_filter</module>. </p>
+    in the Apache error log.</p>
 </usage>
 </directivesynopsis>
 
index c0ee9aff9bc422f32a321e1004d877d2734e2890..3207eb34dc4266269a69f0de2a293c940e352e48 100644 (file)
@@ -393,7 +393,7 @@ by MIME type</td></tr>
 <tr class="odd"><td><a href="core.html#extendedstatus">ExtendedStatus On|Off</a></td><td> Off[*] </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Keep track of extended status information for each
 request</td></tr>
 <tr><td><a href="mod_ext_filter.html#extfilterdefine">ExtFilterDefine <var>filtername</var> <var>parameters</var></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">Define an external filter</td></tr>
-<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> DebugLevel=0 NoLogS +</td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
+<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> NoLogStderr </td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
 <tr><td><a href="mod_dir.html#fallbackresource" id="F" name="F">FallbackResource <var>local-url</var></a></td><td></td><td>svdh</td><td>B</td></tr><tr><td class="descr" colspan="4">Define a default URL for requests that don't map to a file</td></tr>
 <tr class="odd"><td><a href="core.html#fileetag">FileETag <var>Komponente</var> ...</a></td><td> INode MTime Size </td><td>svdh</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Dateiattribute, die zur Erstellung des HTTP-Response-Headers
 ETag verwendet werden</td></tr>
index b0bf17205c7410ca5b0701f64eed153d2ebbc549..5f17c3e560b18dd6cd9ec314158e1399dfb26854 100644 (file)
@@ -385,7 +385,7 @@ by MIME type</td></tr>
 <tr class="odd"><td><a href="core.html#extendedstatus">ExtendedStatus On|Off</a></td><td> Off[*] </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Keep track of extended status information for each
 request</td></tr>
 <tr><td><a href="mod_ext_filter.html#extfilterdefine">ExtFilterDefine <var>filtername</var> <var>parameters</var></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">Define an external filter</td></tr>
-<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> DebugLevel=0 NoLogS +</td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
+<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> NoLogStderr </td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
 <tr><td><a href="mod_dir.html#fallbackresource" id="F" name="F">FallbackResource <var>local-url</var></a></td><td></td><td>svdh</td><td>B</td></tr><tr><td class="descr" colspan="4">Define a default URL for requests that don't map to a file</td></tr>
 <tr class="odd"><td><a href="core.html#fileetag">FileETag <var>component</var> ...</a></td><td> INode MTime Size </td><td>svdh</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">File attributes used to create the ETag
 HTTP response header for static files</td></tr>
index d1a5c790cd96c5c0e9ba45e4b9221b076cbc775d..8622e8f829a5527781d99894c1559806335262da 100644 (file)
@@ -392,7 +392,7 @@ by MIME type</td></tr>
 <tr class="odd"><td><a href="core.html#extendedstatus">ExtendedStatus On|Off</a></td><td> Off[*] </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Keep track of extended status information for each 
 request</td></tr>
 <tr><td><a href="mod_ext_filter.html#extfilterdefine">ExtFilterDefine <var>filtername</var> <var>parameters</var></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">Define an external filter</td></tr>
-<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> DebugLevel=0 NoLogS +</td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
+<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> NoLogStderr </td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
 <tr><td><a href="mod_dir.html#fallbackresource" id="F" name="F">FallbackResource <var>local-url</var></a></td><td></td><td>svdh</td><td>B</td></tr><tr><td class="descr" colspan="4">Define a default URL for requests that don't map to a file</td></tr>
 <tr class="odd"><td><a href="core.html#fileetag">FileETag <var>component</var> ...</a></td><td> INode MTime Size </td><td>svdh</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">File attributes used to create the ETag
 HTTP response header for static files</td></tr>
index 987a273110b5ecceaeda9dd8c9a5fa44364491ef..dd743ae43d5a27db968a24ca6cc89dbf227ba768 100644 (file)
@@ -385,7 +385,7 @@ by MIME type</td></tr>
 <tr class="odd"><td><a href="core.html#extendedstatus">ExtendedStatus On|Off</a></td><td> Off[*] </td><td>s</td><td>Ç</td></tr><tr class="odd"><td class="descr" colspan="4">Keep track of extended status information for each
 request</td></tr>
 <tr><td><a href="mod_ext_filter.html#extfilterdefine">ExtFilterDefine <var>filtername</var> <var>parameters</var></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">Define an external filter</td></tr>
-<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> DebugLevel=0 NoLogS +</td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
+<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> NoLogStderr </td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
 <tr><td><a href="mod_dir.html#fallbackresource" id="F" name="F">FallbackResource <var>yerel-url</var></a></td><td></td><td>skdh</td><td>T</td></tr><tr><td class="descr" colspan="4">Bir dosya ile eşleşmeyen istekler için öntanımlı URL tanımlar
 </td></tr>
 <tr class="odd"><td><a href="core.html#fileetag">FileETag <var>bileşen</var> ...</a></td><td> INode MTime Size </td><td>skdh</td><td>Ç</td></tr><tr class="odd"><td class="descr" colspan="4"><code>ETag</code> HTTP yanıt başlığını oluşturmakta kullanılacak
index 03e68ef23a56a52aae940a83c1efe4294c4f0289..4ece0f63c875ab69d7930760c387f0fd23d4a2a4 100644 (file)
@@ -379,7 +379,7 @@ by MIME type</td></tr>
 <tr class="odd"><td><a href="core.html#extendedstatus">ExtendedStatus On|Off</a></td><td> Off[*] </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Keep track of extended status information for each
 request</td></tr>
 <tr><td><a href="mod_ext_filter.html#extfilterdefine">ExtFilterDefine <var>filtername</var> <var>parameters</var></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">Define an external filter</td></tr>
-<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> DebugLevel=0 NoLogS +</td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
+<tr class="odd"><td><a href="mod_ext_filter.html#extfilteroptions">ExtFilterOptions <var>option</var> [<var>option</var>] ...</a></td><td> NoLogStderr </td><td>d</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Configure <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> options</td></tr>
 <tr><td><a href="mod_dir.html#fallbackresource" id="F" name="F">FallbackResource <var>local-url</var></a></td><td></td><td>svdh</td><td>B</td></tr><tr><td class="descr" colspan="4">Define a default URL for requests that don't map to a file</td></tr>
 <tr class="odd"><td><a href="core.html#fileetag">FileETag <var>component</var> ...</a></td><td> INode MTime Size </td><td>svdh</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">File attributes used to create the ETag
 HTTP response header for static files</td></tr>
index 7d489bc909197fe519bfe84c801c1661c616557e..f7b4bda6911ff55c8bd987e87e2e53ab794bc2dd 100644 (file)
         matches whole cookie names.  Previously any substring would
         match.</li>
 
-        <li><code class="module"><a href="./mod/mod_dav_fs.html">mod_dav_fs</a></code>: The format of the <code class="directive"><a href="./mod/dav_fs.html#davlockdb">DavLockDB</a></code> file has changed for
-        systems with inodes.  The old <code class="directive"><a href="./mod/dav_fs.html#davlockdb">DavLockDB</a></code> file must be deleted on
+        <li><code class="module"><a href="./mod/mod_dav_fs.html">mod_dav_fs</a></code>: The format of the <code class="directive"><a href="./mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code> file has changed for
+        systems with inodes.  The old <code class="directive"><a href="./mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code> file must be deleted on
         upgrade.
         </li>
 
         directives in your 2.2 configuration to determine if they can
         just be deleted or will need to be replaced using <code class="directive"><a href="./mod/core.html#mutex">Mutex</a></code>.</li>
 
-        <li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>: <code class="directive"><a href="./mod/cache.html#cacheignoreurlsessionidentifiers">CacheIgnoreURLSessionIdentifiers</a></code>
+        <li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>: <code class="directive"><a href="./mod/mod_cache.html#cacheignoreurlsessionidentifiers">CacheIgnoreURLSessionIdentifiers</a></code>
         now does an exact match against the query string instead of a
         partial match.  If your configuration was using partial
         strings, e.g. using <code>sessionid</code> to match
         <code>jsessionid</code>.
         </li>
 
-        <li><code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code>: <code class="directive"><a href="./mod/ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code> is now
+        <li><code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code>: <code class="directive"><a href="./mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code> is now
         consistently a per-directory setting only.  If you use this
         directive, review your configuration to make sure it is
         present in all the necessary directory contexts.</li>
 
-        <li><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code>: <code class="directive"><a href="./mod/filter.html#filterprovider">FilterProvider</a></code> syntax has changed and
+        <li><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code>: <code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code> syntax has changed and
         now uses a boolean expression to determine if a filter is applied.
         </li>
 
         <li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code>:
             <ul>
             <li>The <code>#if expr</code> element now uses the new <a href="expr.html">expression parser</a>. The old syntax can be
-            restored with the new directive <code class="directive"><a href="./mod/include.html#ssilegacyexprparser">SSILegacyExprParser</a></code>.
+            restored with the new directive <code class="directive"><a href="./mod/mod_include.html#ssilegacyexprparser">SSILegacyExprParser</a></code>.
             </li>
             <li>An SSI* config directive in directory scope no longer causes
             all other per-directory SSI* directives to be reset to their
             default values.</li>
             </ul>
         </li>
+
+        <li><code class="module"><a href="./mod/mod_charset_lite.html">mod_charset_lite</a></code>: The <code>DebugLevel</code>
+        option has been removed in favour of per-module <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> configuration.
+        </li>
+
+        <li><code class="module"><a href="./mod/mod_ext-filter.html">mod_ext-filter</a></code>: The <code>DebugLevel</code>
+        option has been removed in favour of per-module <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> configuration.
+        </li>
       </ul>
     
   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
index 3a2423006a9a622ea4f23ca19f9f7ea1d2521095..77accafbac1a736d53bdcde3b7cd43fb65f18042 100644 (file)
         match.</li>
 
         <li><module>mod_dav_fs</module>: The format of the <directive
-        module="dav_fs">DavLockDB</directive> file has changed for
+        module="mod_dav_fs">DavLockDB</directive> file has changed for
         systems with inodes.  The old <directive
-        module="dav_fs">DavLockDB</directive> file must be deleted on
+        module="mod_dav_fs">DavLockDB</directive> file must be deleted on
         upgrade.
         </li>
 
         module="core">Mutex</directive>.</li>
 
         <li><module>mod_cache</module>: <directive
-        module="cache">CacheIgnoreURLSessionIdentifiers</directive>
+        module="mod_cache">CacheIgnoreURLSessionIdentifiers</directive>
         now does an exact match against the query string instead of a
         partial match.  If your configuration was using partial
         strings, e.g. using <code>sessionid</code> to match
         </li>
 
         <li><module>mod_ldap</module>: <directive
-        module="ldap">LDAPTrustedClientCert</directive> is now
+        module="mod_ldap">LDAPTrustedClientCert</directive> is now
         consistently a per-directory setting only.  If you use this
         directive, review your configuration to make sure it is
         present in all the necessary directory contexts.</li>
 
         <li><module>mod_filter</module>: <directive
-        module="filter">FilterProvider</directive> syntax has changed and
+        module="mod_filter">FilterProvider</directive> syntax has changed and
         now uses a boolean expression to determine if a filter is applied.
         </li>
 
             <ul>
             <li>The <code>#if expr</code> element now uses the new <a
             href="expr.html">expression parser</a>. The old syntax can be
-            restored with the new directive <directive module="include"
+            restored with the new directive <directive module="mod_include"
             >SSILegacyExprParser</directive>.
             </li>
             <li>An SSI* config directive in directory scope no longer causes
             default values.</li>
             </ul>
         </li>
+
+        <li><module>mod_charset_lite</module>: The <code>DebugLevel</code>
+        option has been removed in favour of per-module <directive
+        module="core">LogLevel</directive> configuration.
+        </li>
+
+        <li><module>mod_ext-filter</module>: The <code>DebugLevel</code>
+        option has been removed in favour of per-module <directive
+        module="core">LogLevel</directive> configuration.
+        </li>
       </ul>
     </section>
   </section>
index b8843467855f1b6222514b9c66ffd7395abd5f8f..1e03814147c9af5a9ceda60c7f0461dce8ba4662 100644 (file)
@@ -56,7 +56,6 @@ typedef struct ef_filter_t {
 } ef_filter_t;
 
 typedef struct ef_dir_t {
-    int debug;
     int log_stderr;
     int onfail;
 } ef_dir_t;
@@ -81,16 +80,12 @@ static apr_status_t ef_input_filter(ap_filter_t *, apr_bucket_brigade *,
                                     ap_input_mode_t, apr_read_type_e,
                                     apr_off_t);
 
-#define DBGLVL_SHOWOPTIONS         1
-#define DBGLVL_GORY                9
-
 #define ERRFN_USERDATA_KEY         "EXTFILTCHILDERRFN"
 
 static void *create_ef_dir_conf(apr_pool_t *p, char *dummy)
 {
     ef_dir_t *dc = (ef_dir_t *)apr_pcalloc(p, sizeof(ef_dir_t));
 
-    dc->debug = -1;
     dc->log_stderr = -1;
     dc->onfail = -1;
 
@@ -112,13 +107,6 @@ static void *merge_ef_dir_conf(apr_pool_t *p, void *basev, void *overridesv)
     ef_dir_t *a = (ef_dir_t *)apr_pcalloc (p, sizeof(ef_dir_t));
     ef_dir_t *base = (ef_dir_t *)basev, *over = (ef_dir_t *)overridesv;
 
-    if (over->debug != -1) {        /* if admin coded something... */
-        a->debug = over->debug;
-    }
-    else {
-        a->debug = base->debug;
-    }
-
     if (over->log_stderr != -1) {   /* if admin coded something... */
         a->log_stderr = over->log_stderr;
     }
@@ -141,10 +129,7 @@ static const char *add_options(cmd_parms *cmd, void *in_dc,
 {
     ef_dir_t *dc = in_dc;
 
-    if (!strncasecmp(arg, "DebugLevel=", 11)) {
-        dc->debug = atoi(arg + 11);
-    }
-    else if (!strcasecmp(arg, "LogStderr")) {
+    if (!strcasecmp(arg, "LogStderr")) {
         dc->log_stderr = 1;
     }
     else if (!strcasecmp(arg, "NoLogStderr")) {
@@ -354,7 +339,7 @@ static const command_rec cmds[] =
                     add_options,
                     NULL,
                     ACCESS_CONF, /* same as SetInputFilter/SetOutputFilter */
-                    "valid options: DebugLevel=n, LogStderr, NoLogStderr"),
+                    "valid options: LogStderr, NoLogStderr"),
     AP_INIT_RAW_ARGS("ExtFilterDefine",
                      define_filter,
                      NULL,
@@ -537,8 +522,6 @@ static apr_status_t init_ext_filter_process(ap_filter_t *f)
 
 static const char *get_cfg_string(ef_dir_t *dc, ef_filter_t *filter, apr_pool_t *p)
 {
-    const char *debug_str = dc->debug == -1 ?
-        "DebugLevel=0" : apr_psprintf(p, "DebugLevel=%d", dc->debug);
     const char *log_stderr_str = dc->log_stderr < 1 ?
         "NoLogStderr" : "LogStderr";
     const char *preserve_content_length_str = filter->preserves_content_length ?
@@ -549,9 +532,9 @@ static const char *get_cfg_string(ef_dir_t *dc, ef_filter_t *filter, apr_pool_t
         "(unchanged)" : filter->outtype;
 
     return apr_psprintf(p,
-                        "ExtFilterOptions %s %s %s ExtFilterInType %s "
+                        "ExtFilterOptions %s %s ExtFilterInType %s "
                         "ExtFilterOuttype %s",
-                        debug_str, log_stderr_str, preserve_content_length_str,
+                        log_stderr_str, preserve_content_length_str,
                         intype_str, outtype_str);
 }
 
@@ -638,8 +621,8 @@ static apr_status_t init_filter_instance(ap_filter_t *f)
         }
     }
 
-    if (dc->debug >= DBGLVL_SHOWOPTIONS) {
-        ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, f->r,
+    if (APLOGrtrace1(f->r)) {
+        ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, f->r,
                       "%sfiltering `%s' of type `%s' through `%s', cfg %s",
                       ctx->noop ? "NOT " : "",
                       f->r->uri ? f->r->uri : f->r->filename,
@@ -662,23 +645,20 @@ static apr_status_t drain_available_output(ap_filter_t *f,
     request_rec *r = f->r;
     conn_rec *c = r->connection;
     ef_ctx_t *ctx = f->ctx;
-    ef_dir_t *dc = ctx->dc;
     apr_size_t len;
     char buf[4096];
     apr_status_t rv;
     apr_bucket *b;
 
     while (1) {
+        int lvl = APLOG_TRACE5;
         len = sizeof(buf);
-        rv = apr_file_read(ctx->proc->out,
-                      buf,
-                      &len);
-        if ((rv && !APR_STATUS_IS_EAGAIN(rv)) ||
-            dc->debug >= DBGLVL_GORY) {
-            ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r,
-                          "apr_file_read(child output), len %" APR_SIZE_T_FMT,
-                          !rv ? len : -1);
-        }
+        rv = apr_file_read(ctx->proc->out, buf, &len);
+        if (rv && !APR_STATUS_IS_EAGAIN(rv))
+           lvl = APLOG_DEBUG;
+        ap_log_rerror(APLOG_MARK, lvl, rv, r,
+                      "apr_file_read(child output), len %" APR_SIZE_T_FMT,
+                      !rv ? len : -1);
         if (rv != APR_SUCCESS) {
             return rv;
         }
@@ -696,7 +676,6 @@ static apr_status_t pass_data_to_filter(ap_filter_t *f, const char *data,
                                         apr_size_t len, apr_bucket_brigade *bb)
 {
     ef_ctx_t *ctx = f->ctx;
-    ef_dir_t *dc = ctx->dc;
     apr_status_t rv;
     apr_size_t bytes_written = 0;
     apr_size_t tmplen;
@@ -726,23 +705,20 @@ static apr_status_t pass_data_to_filter(ap_filter_t *f, const char *data,
 
                 rv = apr_pollset_poll(ctx->pollset, f->r->server->timeout,
                                       &num_events, &pdesc);
-                if (rv || dc->debug >= DBGLVL_GORY) {
-                    ap_log_rerror(APLOG_MARK, APLOG_DEBUG,
-                                  rv, f->r, "apr_pollset_poll()");
-                }
                 if (rv != APR_SUCCESS && !APR_STATUS_IS_EINTR(rv)) {
+                    ap_log_rerror(APLOG_MARK, APLOG_WARNING, rv, f->r,
+                                  "apr_pollset_poll()");
                     /* some error such as APR_TIMEUP */
                     return rv;
                 }
+                ap_log_rerror(APLOG_MARK, APLOG_TRACE6, rv, f->r,
+                              "apr_pollset_poll()");
 #else /* APR_FILES_AS_SOCKETS */
                 /* Yuck... I'd really like to wait until I can read
                  * or write, but instead I have to sleep and try again
                  */
                 apr_sleep(100000); /* 100 milliseconds */
-                if (dc->debug >= DBGLVL_GORY) {
-                    ap_log_rerror(APLOG_MARK, APLOG_DEBUG,
-                                  0, f->r, "apr_sleep()");
-                }
+                ap_log_rerror(APLOG_MARK, APLOG_TRACE6, 0, f->r, "apr_sleep()");
 #endif /* APR_FILES_AS_SOCKETS */
             }
             else if (rv != APR_SUCCESS) {
@@ -765,7 +741,6 @@ static int ef_unified_filter(ap_filter_t *f, apr_bucket_brigade *bb)
     conn_rec *c = r->connection;
     ef_ctx_t *ctx = f->ctx;
     apr_bucket *b;
-    ef_dir_t *dc;
     apr_size_t len;
     const char *data;
     apr_status_t rv;
@@ -773,7 +748,6 @@ static int ef_unified_filter(ap_filter_t *f, apr_bucket_brigade *bb)
     apr_bucket *eos = NULL;
     apr_bucket_brigade *bb_tmp;
 
-    dc = ctx->dc;
     bb_tmp = apr_brigade_create(r->pool, c->bucket_alloc);
 
     for (b = APR_BRIGADE_FIRST(bb);
@@ -825,16 +799,14 @@ static int ef_unified_filter(ap_filter_t *f, apr_bucket_brigade *bb)
     }
 
     do {
+        int lvl = APLOG_TRACE6;
         len = sizeof(buf);
-        rv = apr_file_read(ctx->proc->out,
-                      buf,
-                      &len);
-        if ((rv && !APR_STATUS_IS_EOF(rv) && !APR_STATUS_IS_EAGAIN(rv)) ||
-            dc->debug >= DBGLVL_GORY) {
-            ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r,
-                          "apr_file_read(child output), len %" APR_SIZE_T_FMT,
-                          !rv ? len : -1);
-        }
+        rv = apr_file_read(ctx->proc->out, buf, &len);
+        if (rv && !APR_STATUS_IS_EOF(rv) && !APR_STATUS_IS_EAGAIN(rv))
+            lvl = APLOG_ERR;
+        ap_log_rerror(APLOG_MARK, lvl, rv, r,
+                      "apr_file_read(child output), len %" APR_SIZE_T_FMT,
+                      !rv ? len : -1);
         if (APR_STATUS_IS_EAGAIN(rv)) {
             if (eos) {
                 /* should not occur, because we have an APR timeout in place */
@@ -907,7 +879,7 @@ static apr_status_t ef_output_filter(ap_filter_t *f, apr_bucket_brigade *bb)
     }
 
     if ((rv = ap_pass_brigade(f->next, bb)) != APR_SUCCESS) {
-        ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
+        ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r,
                       "ap_pass_brigade() failed");
     }
     return rv;