<ul>
<li>Introduce per-directory, per-module loglevel</li>
<li>New loglevels APLOG_TRACEn</li>
- <li>ap_log_*error become macro wrappers (fully back-compatible if
- APLOG_MARK macro is used)</li>
+ <li>ap_log_*error become macro wrappers (back-compatible if
+ APLOG_MARK macro is used, except that is no longer possible to
+ use #ifdef inside the argument list)</li>
<li>piped logging revamped</li>
<li>module_index added to error_log hook</li>
<li>new function: ap_log_command_line</li>
<br />
</example>
+ <p><code>ap_log_*error</code> are now implemented as macros. This means
+ that it is no longer possible to use <code>#ifdef</code> inside the
+ argument list of <code>ap_log_*error</code>, as this would cause
+ undefined behavor according to C99.</p>
+
<p>A <code>server_rec</code> pointer must be passed to
<code>ap_log_error()</code> when called after startup. This
was always appropriate, but there are even more limitations with