On high-traffic production sites it is unlikely that RewriteLog will ever be
used, so it may be desirable to strip the code entirely per compiler option
from mod_rewrite.
This shortens the binary (here, DSO) about 10k and saves a lot of cycles
(because there's still some logic there, even if RewriteLog is turned off).

A patch could look like the attached one. What do you think? Objections
anyone?

Thanks, nd
Index: modules/mappers/mod_rewrite.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_rewrite.c,v
retrieving revision 1.208
diff -u -r1.208 mod_rewrite.c
--- modules/mappers/mod_rewrite.c	30 Jul 2003 21:04:31 -0000	1.208
+++ modules/mappers/mod_rewrite.c	31 Jul 2003 00:34:18 -0000
@@ -206,10 +206,6 @@
 /* default maximum number of internal redirects */
 #define REWRITE_REDIRECT_LIMIT 10
 
-/* for rewrite log file */
-#define REWRITELOG_MODE  ( APR_UREAD | APR_UWRITE | APR_GREAD | APR_WREAD )
-#define REWRITELOG_FLAGS ( APR_WRITE | APR_APPEND | APR_CREATE )
-
 /* max line length (incl.\n) in text rewrite maps */
 #ifndef REWRITE_MAX_TXT_MAP_LINE
 #define REWRITE_MAX_TXT_MAP_LINE 1024
@@ -224,6 +220,12 @@
 #define LEFT_CURLY  '{'
 #define RIGHT_CURLY '}'
 
+#ifndef REWRITELOG_DISABLED
+/* for rewrite log file */
+#define REWRITELOG_MODE  ( APR_UREAD | APR_UWRITE | APR_GREAD | APR_WREAD )
+#define REWRITELOG_FLAGS ( APR_WRITE | APR_APPEND | APR_CREATE )
+#endif
+
 
 /*
  * +-------------------------------------------------------+
@@ -290,9 +292,11 @@
 typedef struct {
     int           state;              /* the RewriteEngine state            */
     int           options;            /* the RewriteOption state            */
+#ifndef REWRITELOG_DISABLED
     const char   *rewritelogfile;     /* the RewriteLog filename            */
     apr_file_t   *rewritelogfp;       /* the RewriteLog open filepointer    */
     int           rewriteloglevel;    /* the RewriteLog level of verbosity  */
+#endif
     apr_hash_t         *rewritemaps;  /* the RewriteMap entries             */
     apr_array_header_t *rewriteconds; /* the RewriteCond entries (temp.)    */
     apr_array_header_t *rewriterules; /* the RewriteRule entries            */
@@ -380,7 +384,10 @@
 /* Locks/Mutexes */
 static const char *lockname;
 static apr_global_mutex_t *rewrite_mapr_lock_acquire = NULL;
+
+#ifndef REWRITELOG_DISABLED
 static apr_global_mutex_t *rewrite_log_lock = NULL;
+#endif
 
 
 /*
@@ -391,6 +398,7 @@
  * +-------------------------------------------------------+
  */
 
+#ifndef REWRITELOG_DISABLED
 static char *current_logtime(request_rec *r)
 {
     apr_time_exp_t t;
@@ -465,7 +473,9 @@
     return 1;
 }
 
-static void rewritelog(request_rec *r, int level, const char *fmt, ...)
+#define rewritelog(x) do_rewritelog x
+static void do_rewritelog(request_rec *r, int level, char *perdir,
+                          const char *fmt, ...)
 {
     rewrite_server_conf *conf;
     char *logline, *text;
@@ -495,7 +505,7 @@
     va_end(ap);
 
     logline = apr_psprintf(r->pool, "%s %s %s %s [%s/sid#%pp][rid#%pp/%s%s%s] "
-                                    "(%d) %s" APR_EOL_STR,
+                                    "(%d) %s%s%s%s" APR_EOL_STR,
                            rhost ? rhost : "UNKNOWN-HOST",
                            rname ? rname : "-",
                            r->user ? (*r->user ? r->user : "\"\"") : "-",
@@ -506,7 +516,11 @@
                            r->main ? "subreq" : "initial",
                            redir ? "/redir#" : "",
                            redir ? apr_itoa(r->pool, redir) : "",
-                           level, text);
+                           level,
+                           perdir ? " [perdir " : "",
+                           perdir ? perdir : "",
+                           perdir ? "] ": "",
+                           text);
 
     rv = apr_global_mutex_lock(rewrite_log_lock);
     if (rv != APR_SUCCESS) {
@@ -527,7 +541,11 @@
 
     return;
 }
+#else /* rewritelog */
+
+#define rewritelog(x)
 
+#endif /* !rewritelog */
 
 /*
  * +-------------------------------------------------------+
@@ -720,8 +738,8 @@
             r->args[len-1] = '\0';
         }
 
-        rewritelog(r, 3, "split uri=%s -> uri=%s, args=%s", olduri,
-                   r->filename, r->args ? r->args : "<none>");
+        rewritelog((r, 3, NULL, "split uri=%s -> uri=%s, args=%s", olduri,
+                    r->filename, r->args ? r->args : "<none>"));
     }
 
     return;
@@ -781,7 +799,7 @@
 
         /* now check whether we could reduce it to a local path... */
         if (ap_matches_request_vhost(r, host, port)) {
-            rewritelog(r, 3, "reduce %s -> %s", r->filename, url);
+            rewritelog((r, 3, NULL, "reduce %s -> %s", r->filename, url));
             r->filename = apr_pstrdup(r->pool, url);
         }
     }
@@ -875,7 +893,8 @@
         apr_size_t slen, outlen;
         char *output;
 
-        rewritelog(r, 5, "strip matching prefix: %s -> %s", input, input+len);
+        rewritelog((r, 5, NULL, "strip matching prefix: %s -> %s", input,
+                    input+len));
 
         slen = strlen(subst);
         if (slen && subst[slen - 1] != '/') {
@@ -892,7 +911,8 @@
         memcpy(output+slen, input+len, outlen - slen);
         output[outlen] = '\0';
 
-        rewritelog(r, 4, "add subst prefix: %s -> %s", input+len, output);
+        rewritelog((r, 4, NULL, "add subst prefix: %s -> %s", input+len,
+                    output));
 
         return output;
     }
@@ -1410,34 +1430,36 @@
             ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
                           "mod_rewrite: can't access text RewriteMap file %s",
                           s->checkfile);
-            rewritelog(r, 1, "can't open RewriteMap file, see error log");
+            rewritelog((r, 1, NULL,
+                        "can't open RewriteMap file, see error log"));
             return NULL;
         }
 
         value = get_cache_value(name, st.mtime, key, r->pool);
         if (!value) {
-            rewritelog(r, 6, "cache lookup FAILED, forcing new map lookup");
+            rewritelog((r, 6, NULL,
+                        "cache lookup FAILED, forcing new map lookup"));
 
             value = lookup_map_txtfile(r, s->datafile, key);
             if (!value) {
-                rewritelog(r, 5, "map lookup FAILED: map=%s[txt] key=%s",
-                           name, key);
+                rewritelog((r, 5, NULL, "map lookup FAILED: map=%s[txt] key=%s",
+                            name, key));
                 set_cache_value(name, st.mtime, key, "");
                 return NULL;
             }
 
-            rewritelog(r, 5, "map lookup OK: map=%s[txt] key=%s -> val=%s",
-                       name, key, value);
+            rewritelog((r, 5, NULL,"map lookup OK: map=%s[txt] key=%s -> val=%s",
+                        name, key, value));
             set_cache_value(name, st.mtime, key, value);
         }
         else {
-            rewritelog(r, 5, "cache lookup OK: map=%s[txt] key=%s -> val=%s",
-                       name, key, value);
+            rewritelog((r,5,NULL,"cache lookup OK: map=%s[txt] key=%s -> val=%s",
+                        name, key, value));
         }
 
         if (s->type == MAPTYPE_RND && *value) {
             value = select_random_value_part(r, value);
-            rewritelog(r, 5, "randomly chosen the subvalue `%s'", value);
+            rewritelog((r, 5, NULL, "randomly chosen the subvalue `%s'",value));
         }
 
         return *value ? value : NULL;
@@ -1451,30 +1473,33 @@
             ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
                           "mod_rewrite: can't access DBM RewriteMap file %s",
                           s->checkfile);
-            rewritelog(r, 1, "can't open DBM RewriteMap file, see error log");
+            rewritelog((r, 1, NULL,
+                        "can't open DBM RewriteMap file, see error log"));
             return NULL;
         }
 
         value = get_cache_value(name, st.mtime, key, r->pool);
         if (!value) {
-            rewritelog(r, 6, "cache lookup FAILED, forcing new map lookup");
+            rewritelog((r, 6, NULL,
+                        "cache lookup FAILED, forcing new map lookup"));
 
             value = lookup_map_dbmfile(r, s->datafile, s->dbmtype, key);
             if (!value) {
-                rewritelog(r, 5, "map lookup FAILED: map=%s[dbm] key=%s",
-                           name, key);
+                rewritelog((r, 5, NULL, "map lookup FAILED: map=%s[dbm] key=%s",
+                            name, key));
                 set_cache_value(name, st.mtime, key, "");
                 return NULL;
             }
 
-            rewritelog(r, 5, "map lookup OK: map=%s[dbm] key=%s -> val=%s",
-                       name, key, value);
+            rewritelog((r, 5, NULL, "map lookup OK: map=%s[dbm] key=%s -> "
+                        "val=%s", name, key, value));
+
             set_cache_value(name, st.mtime, key, value);
             return value;
         }
 
-        rewritelog(r, 5, "cache lookup OK: map=%s[dbm] key=%s -> val=%s",
-                   name, key, value);
+        rewritelog((r, 5, NULL, "cache lookup OK: map=%s[dbm] key=%s -> val=%s",
+                    name, key, value));
         return *value ? value : NULL;
 
     /*
@@ -1483,12 +1508,13 @@
     case MAPTYPE_PRG:
         value = lookup_map_program(r, s->fpin, s->fpout, key);
         if (!value) {
-            rewritelog(r, 5, "map lookup FAILED: map=%s key=%s", name, key);
+            rewritelog((r, 5,NULL,"map lookup FAILED: map=%s key=%s", name,
+                        key));
             return NULL;
         }
 
-        rewritelog(r, 5, "map lookup OK: map=%s key=%s -> val=%s",
-                   name, key, value);
+        rewritelog((r, 5, NULL, "map lookup OK: map=%s key=%s -> val=%s",
+                    name, key, value));
         return value;
 
     /*
@@ -1497,12 +1523,13 @@
     case MAPTYPE_INT:
         value = s->func(r, key);
         if (!value) {
-            rewritelog(r, 5, "map lookup FAILED: map=%s key=%s", name, key);
+            rewritelog((r, 5,NULL,"map lookup FAILED: map=%s key=%s", name,
+                        key));
             return NULL;
         }
 
-        rewritelog(r, 5, "map lookup OK: map=%s key=%s -> val=%s",
-                   name, key, value);
+        rewritelog((r, 5, NULL, "map lookup OK: map=%s key=%s -> val=%s",
+                    name, key, value));
         return value;
     }
 
@@ -1576,8 +1603,8 @@
                     result = apr_pstrdup(r->pool, lookup_variable(rr, var+5));
                     ap_destroy_sub_req(rr);
 
-                    rewritelog(r, 5, "lookahead: path=%s var=%s -> val=%s",
-                               r->filename, var+5, result);
+                    rewritelog((r, 5, NULL,"lookahead: path=%s var=%s -> val=%s",
+                                r->filename, var+5, result));
 
                     return (char *)result;
                 }
@@ -1588,8 +1615,8 @@
                     result = apr_pstrdup(r->pool, lookup_variable(rr, var+5));
                     ap_destroy_sub_req(rr);
 
-                    rewritelog(r, 5, "lookahead: path=%s var=%s -> val=%s",
-                               r->filename, var+5, result);
+                    rewritelog((r, 5, NULL,"lookahead: path=%s var=%s -> val=%s",
+                                r->filename, var+5, result));
 
                     return (char *)result;
                 }
@@ -1614,7 +1641,7 @@
                 result = apr_psprintf(r->pool, "%04d%02d%02d%02d%02d%02d",
                                       tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
                                       tm.tm_hour, tm.tm_min, tm.tm_sec);
-                rewritelog(r, 1, "RESULT='%s'", result);
+                rewritelog((r, 1, NULL, "RESULT='%s'", result));
                 return (char *)result;
             }
             break;
@@ -2122,7 +2149,7 @@
         *val++ = '\0';
 
         apr_table_set(r->subprocess_env, s, val);
-        rewritelog(r, 5, "setting env variable '%s' to '%s'", s, val);
+        rewritelog((r, 5, NULL, "setting env variable '%s' to '%s'", s, val));
     }
 }
 
@@ -2195,10 +2222,11 @@
                  */
                 apr_table_add(rmain->err_headers_out, "Set-Cookie", cookie);
                 apr_pool_userdata_set("set", notename, NULL, rmain->pool);
-                rewritelog(rmain, 5, "setting cookie '%s'", cookie);
+                rewritelog((rmain, 5, NULL, "setting cookie '%s'", cookie));
             }
             else {
-                rewritelog(rmain, 5, "skipping already set cookie '%s'", var);
+                rewritelog((rmain, 5, NULL,
+                           "skipping already set cookie '%s'", var));
             }
         }
     }
@@ -2418,9 +2446,11 @@
 
     a->state           = ENGINE_DISABLED;
     a->options         = OPTION_NONE;
+#ifndef REWRITELOG_DISABLED
     a->rewritelogfile  = NULL;
     a->rewritelogfp    = NULL;
     a->rewriteloglevel = 0;
+#endif
     a->rewritemaps     = apr_hash_make(p);
     a->rewriteconds    = apr_array_make(p, 2, sizeof(rewritecond_entry));
     a->rewriterules    = apr_array_make(p, 2, sizeof(rewriterule_entry));
@@ -2451,6 +2481,7 @@
          *  local directives override
          *  and anything else is inherited
          */
+#ifndef REWRITELOG_DISABLED
         a->rewriteloglevel = overrides->rewriteloglevel != 0
                              ? overrides->rewriteloglevel
                              : base->rewriteloglevel;
@@ -2460,6 +2491,7 @@
         a->rewritelogfp    = overrides->rewritelogfp != NULL
                              ? overrides->rewritelogfp
                              : base->rewritelogfp;
+#endif
         a->rewritemaps     = apr_hash_overlay(p, overrides->rewritemaps,
                                               base->rewritemaps);
         a->rewriteconds    = apr_array_append(p, overrides->rewriteconds,
@@ -2472,9 +2504,11 @@
          *  local directives override
          *  and anything else gets defaults
          */
+#ifndef REWRITELOG_DISABLED
         a->rewriteloglevel = overrides->rewriteloglevel;
         a->rewritelogfile  = overrides->rewritelogfile;
         a->rewritelogfp    = overrides->rewritelogfp;
+#endif
         a->rewritemaps     = overrides->rewritemaps;
         a->rewriteconds    = overrides->rewriteconds;
         a->rewriterules    = overrides->rewriterules;
@@ -2609,6 +2643,7 @@
     return NULL;
 }
 
+#ifndef REWRITELOG_DISABLED
 static const char *cmd_rewritelog(cmd_parms *cmd, void *dconf, const char *a1)
 {
     rewrite_server_conf *sconf;
@@ -2629,6 +2664,7 @@
 
     return NULL;
 }
+#endif /* rewritelog */
 
 static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1,
                                   const char *a2)
@@ -2665,10 +2701,10 @@
     }
     else if (strncasecmp(a2, "dbm", 3) == 0) {
         const char *ignored_fname;
-        int bad = 0;
         apr_status_t rv;
 
         newmap->type = MAPTYPE_DBM;
+        fname = NULL;
 
         if (a2[3] == ':') {
             newmap->dbmtype = "default";
@@ -2682,15 +2718,9 @@
                                                colon - (a2 + 3) - 1);
                 fname = colon + 1;
             }
-            else {
-                ++bad;
-            }
-        }
-        else {
-            ++bad;
         }
 
-        if (bad) {
+        if (!fname) {
             return apr_pstrcat(cmd->pool, "RewriteMap: bad map:",
                                a2, NULL);
         }
@@ -3310,8 +3340,8 @@
             if (rsub->status < 400) {
                 rc = 1;
             }
-            rewritelog(r, 5, "RewriteCond URI (-U) check: "
-                       "path=%s -> status=%d", input, rsub->status);
+            rewritelog((r, 5, NULL, "RewriteCond URI (-U) check: "
+                        "path=%s -> status=%d", input, rsub->status));
             ap_destroy_sub_req(rsub);
         }
         break;
@@ -3325,9 +3355,9 @@
                          r->pool) == APR_SUCCESS) {
                 rc = 1;
             }
-            rewritelog(r, 5, "RewriteCond file (-F) check: path=%s "
-                       "-> file=%s status=%d", input, rsub->filename,
-                       rsub->status);
+            rewritelog((r, 5, NULL, "RewriteCond file (-F) check: path=%s "
+                        "-> file=%s status=%d", input, rsub->filename,
+                        rsub->status));
             ap_destroy_sub_req(rsub);
         }
         break;
@@ -3366,11 +3396,11 @@
         rc = !rc;
     }
 
-    rewritelog(r, 4, "RewriteCond: input='%s' pattern='%s%s%s'%s => %s",
-               input, (p->flags & CONDFLAG_NOTMATCH) ? "!" : "",
-               (p->ptype == CONDPAT_STR_EQ) ? "=" : "", p->pattern,
-               (p->flags & CONDFLAG_NOCASE) ? " [NC]" : "",
-               rc ? "matched" : "not-matched");
+    rewritelog((r, 4, perdir, "RewriteCond: input='%s' pattern='%s%s%s'%s => %s",
+                input, (p->flags & CONDFLAG_NOTMATCH) ? "!" : "",
+                (p->ptype == CONDPAT_STR_EQ) ? "=" : "", p->pattern,
+                (p->flags & CONDFLAG_NOCASE) ? " [NC]" : "",
+                rc ? "matched" : "not-matched"));
 
     return rc;
 }
@@ -3409,8 +3439,8 @@
      *  make sure we really match against the complete URL.
      */
     if (perdir != NULL && r->path_info != NULL && r->path_info[0] != '\0') {
-        rewritelog(r, 3, "[per-dir %s] add path info postfix: %s -> %s%s",
-                   perdir, uri, uri, r->path_info);
+        rewritelog((r, 3, perdir, "add path info postfix: %s -> %s%s",
+                    uri, uri, r->path_info));
         uri = apr_pstrcat(r->pool, uri, r->path_info, NULL);
     }
 
@@ -3424,8 +3454,8 @@
     if (perdir != NULL) {
         if (   strlen(uri) >= strlen(perdir)
             && strncmp(uri, perdir, strlen(perdir)) == 0) {
-            rewritelog(r, 3, "[per-dir %s] strip per-dir prefix: %s -> %s",
-                       perdir, uri, uri+strlen(perdir));
+            rewritelog((r, 3, perdir, "strip per-dir prefix: %s -> %s",
+                        uri, uri+strlen(perdir)));
             uri = uri+strlen(perdir);
             prefixstrip = 1;
         }
@@ -3435,14 +3465,9 @@
      *  Try to match the URI against the RewriteRule pattern
      *  and exit immeddiately if it didn't apply.
      */
-    if (perdir == NULL) {
-        rewritelog(r, 3, "applying pattern '%s' to uri '%s'",
-                   p->pattern, uri);
-    }
-    else {
-        rewritelog(r, 3, "[per-dir %s] applying pattern '%s' to uri '%s'",
-                   perdir, p->pattern, uri);
-    }
+    rewritelog((r, 3, perdir, "applying pattern '%s' to uri '%s'", p->pattern,
+                uri));
+
     rc = (ap_regexec(regexp, uri, regexp->re_nsub+1, regmatch, 0) == 0);
     if (! (( rc && !(p->flags & RULEFLAG_NOTMATCH)) ||
            (!rc &&  (p->flags & RULEFLAG_NOTMATCH))   ) ) {
@@ -3561,8 +3586,8 @@
                  * the correct way by notifying our MIME-type hook handler
                  * to do the job when the MIME-type API stage is reached.
                  */
-                rewritelog(r, 2, "remember %s to have MIME-type '%s'",
-                           r->filename, p->forced_mimetype);
+                rewritelog((r, 2, NULL, "remember %s to have MIME-type '%s'",
+                            r->filename, p->forced_mimetype));
                 apr_table_setn(r->notes, REWRITE_FORCED_MIMETYPE_NOTEVAR,
                                p->forced_mimetype);
             }
@@ -3576,8 +3601,8 @@
                  * immediately although this is not strictly API-conforming.
                  * But it's the only chance we have...
                  */
-                rewritelog(r, 1, "[per-dir %s] force %s to have MIME-type "
-                           "'%s'", perdir, r->filename, p->forced_mimetype);
+                rewritelog((r, 1, perdir, "force %s to have MIME-type '%s'",
+                            r->filename, p->forced_mimetype));
                 ap_set_content_type(r, p->forced_mimetype);
             }
         }
@@ -3590,12 +3615,7 @@
      *  substitution URL string in `newuri'.
      */
     newuri = do_expand(r, output, briRR, briRC);
-    if (perdir == NULL) {
-        rewritelog(r, 2, "rewrite %s -> %s", uri, newuri);
-    }
-    else {
-        rewritelog(r, 2, "[per-dir %s] rewrite %s -> %s", perdir, uri, newuri);
-    }
+    rewritelog((r, 2, perdir, "rewrite %s -> %s", uri, newuri));
 
     /*
      *  Additionally do expansion for the environment variable
@@ -3625,8 +3645,8 @@
      */
     if (prefixstrip && *r->filename != '/'
                     && !is_absolute_uri(r->filename)) {
-        rewritelog(r, 3, "[per-dir %s] add per-dir prefix: %s -> %s%s",
-                   perdir, r->filename, perdir, r->filename);
+        rewritelog((r, 3, perdir, "add per-dir prefix: %s -> %s%s",
+                    r->filename, perdir, r->filename));
         r->filename = apr_pstrcat(r->pool, perdir, r->filename, NULL);
     }
 
@@ -3640,13 +3660,8 @@
      */
     if (p->flags & RULEFLAG_PROXY) {
         fully_qualify_uri(r);
-        if (perdir == NULL) {
-            rewritelog(r, 2, "forcing proxy-throughput with %s", r->filename);
-        }
-        else {
-            rewritelog(r, 2, "[per-dir %s] forcing proxy-throughput with %s",
-                       perdir, r->filename);
-        }
+        rewritelog((r, 2, perdir, "forcing proxy-throughput with %s",
+                    r->filename));
         r->filename = apr_pstrcat(r->pool, "proxy:", r->filename, NULL);
         return 1;
     }
@@ -3659,15 +3674,9 @@
      */
     if (p->flags & RULEFLAG_FORCEREDIRECT) {
         fully_qualify_uri(r);
-        if (perdir == NULL) {
-            rewritelog(r, 2,
-                       "explicitly forcing redirect with %s", r->filename);
-        }
-        else {
-            rewritelog(r, 2,
-                       "[per-dir %s] explicitly forcing redirect with %s",
-                       perdir, r->filename);
-        }
+        rewritelog((r, 2, perdir, "explicitly forcing redirect with %s",
+                    r->filename));
+
         r->status = p->forced_responsecode;
         return 1;
     }
@@ -3689,16 +3698,9 @@
      *  directly force an external HTTP redirect.
      */
     if (is_absolute_uri(r->filename)) {
-        if (perdir == NULL) {
-            rewritelog(r, 2,
-                       "implicitly forcing redirect (rc=%d) with %s",
-                       p->forced_responsecode, r->filename);
-        }
-        else {
-            rewritelog(r, 2, "[per-dir %s] implicitly forcing redirect "
-                       "(rc=%d) with %s", perdir, p->forced_responsecode,
-                       r->filename);
-        }
+        rewritelog((r, 2, perdir, "implicitly forcing redirect (rc=%d) with %s",
+                    p->forced_responsecode, r->filename));
+
         r->status = p->forced_responsecode;
         return 1;
     }
@@ -3714,15 +3716,9 @@
     if (p->forced_mimetype != NULL) {
         apr_table_setn(r->notes, REWRITE_FORCED_MIMETYPE_NOTEVAR,
                       p->forced_mimetype);
-        if (perdir == NULL) {
-            rewritelog(r, 2, "remember %s to have MIME-type '%s'",
-                       r->filename, p->forced_mimetype);
-        }
-        else {
-            rewritelog(r, 2,
-                       "[per-dir %s] remember %s to have MIME-type '%s'",
-                       perdir, r->filename, p->forced_mimetype);
-        }
+        
+        rewritelog((r, 2, perdir, "remember %s to have MIME-type '%s'",
+                    r->filename, p->forced_mimetype));
     }
 
     /*
@@ -3787,8 +3783,8 @@
              *  modules like mod_alias, mod_userdir, etc.
              */
             if (p->flags & RULEFLAG_PASSTHROUGH) {
-                rewritelog(r, 2, "forcing '%s' to get passed through "
-                           "to next API URI-to-filename handler", r->filename);
+                rewritelog((r, 2, perdir, "forcing '%s' to get passed through "
+                           "to next API URI-to-filename handler", r->filename));
                 r->filename = apr_pstrcat(r->pool, "passthrough:",
                                          r->filename, NULL);
                 changed = ACTION_NORMAL;
@@ -3800,7 +3796,9 @@
              *  we stop processing and indicate this to the caller.
              */
             if (p->flags & RULEFLAG_FORBIDDEN) {
-                rewritelog(r, 2, "forcing '%s' to be forbidden", r->filename);
+                rewritelog((r, 2, perdir, "forcing '%s' to be forbidden",
+                            r->filename));
+
                 r->filename = apr_pstrcat(r->pool, "forbidden:",
                                          r->filename, NULL);
                 changed = ACTION_NORMAL;
@@ -3812,7 +3810,9 @@
              *  we stop processing and indicate this to the caller.
              */
             if (p->flags & RULEFLAG_GONE) {
-                rewritelog(r, 2, "forcing '%s' to be gone", r->filename);
+                rewritelog((r, 2, perdir, "forcing '%s' to be gone",
+                            r->filename));
+
                 r->filename = apr_pstrcat(r->pool, "gone:", r->filename, NULL);
                 changed = ACTION_NORMAL;
                 break;
@@ -3912,6 +3912,7 @@
     /* check if proxy module is available */
     proxy_available = (ap_find_linked_module("mod_proxy.c") != NULL);
 
+#ifndef REWRITELOG_DISABLED
     /* create the rewriting lockfiles in the parent */
     if ((rv = apr_global_mutex_create(&rewrite_log_lock, NULL,
                                       APR_LOCK_DEFAULT, p)) != APR_SUCCESS) {
@@ -3928,7 +3929,8 @@
                      "rewrite_log_lock; check User and Group directives");
         return HTTP_INTERNAL_SERVER_ERROR;
     }
-#endif
+#endif /* perms */
+#endif /* rewritelog */
 
     rv = rewritelock_create(s, p);
     if (rv != APR_SUCCESS) {
@@ -3943,9 +3945,11 @@
      * - open the RewriteMap prg:xxx programs
      */
     for (; s; s = s->next) {
+#ifndef REWRITELOG_DISABLED
         if (!open_rewritelog(s, p)) {
             return HTTP_INTERNAL_SERVER_ERROR;
         }
+#endif
 
         if (!first_time) {
             if (run_rewritemap_programs(s, p) != APR_SUCCESS) {
@@ -3959,7 +3963,7 @@
 
 static void init_child(apr_pool_t *p, server_rec *s)
 {
-    apr_status_t rv;
+    apr_status_t rv = 0;
 
     if (lockname != NULL && *(lockname) != '\0') {
         rv = apr_global_mutex_child_init(&rewrite_mapr_lock_acquire,
@@ -3971,11 +3975,13 @@
         }
     }
 
+#ifndef REWRITELOG_DISABLED
     rv = apr_global_mutex_child_init(&rewrite_log_lock, NULL, p);
     if (rv != APR_SUCCESS) {
         ap_log_error(APLOG_MARK, APLOG_CRIT, rv, s,
                      "mod_rewrite: could not init rewrite log lock in child");
     }
+#endif
 
     /* create the lookup cache */
     if (!init_cache(p)) {
@@ -4078,12 +4084,12 @@
          */
         if (r->filename == NULL) {
             r->filename = apr_pstrdup(r->pool, r->uri);
-            rewritelog(r, 2, "init rewrite engine with requested uri %s",
-                       r->filename);
+            rewritelog((r, 2, NULL, "init rewrite engine with requested uri %s",
+                        r->filename));
         }
         else {
-            rewritelog(r, 2, "init rewrite engine with passed filename %s."
-                       " Original uri = %s", r->filename, r->uri);
+            rewritelog((r, 2, NULL, "init rewrite engine with passed filename "
+                        "%s. Original uri = %s", r->filename, r->uri));
         }
 
         /*
@@ -4094,9 +4100,9 @@
                       apr_psprintf(r->pool,"%d",rulestatus));
     }
     else {
-        rewritelog(r, 2,
-                   "uri already rewritten. Status %s, Uri %s, r->filename %s",
-                   saved_rulestatus, r->uri, r->filename);
+        rewritelog((r, 2, NULL, "uri already rewritten. Status %s, Uri %s, "
+                    "r->filename %s", saved_rulestatus, r->uri, r->filename));
+
         rulestatus = atoi(saved_rulestatus);
     }
 
@@ -4135,8 +4141,8 @@
             r->proxyreq = PROXYREQ_REVERSE;
             r->handler  = "proxy-server";
 
-            rewritelog(r, 1, "go-ahead with proxy request %s [OK]",
-                       r->filename);
+            rewritelog((r, 1, NULL, "go-ahead with proxy request %s [OK]",
+                        r->filename));
             return OK;
         }
         else if ((skip = is_absolute_uri(r->filename)) > 0) {
@@ -4145,7 +4151,8 @@
             /* it was finally rewritten to a remote URL */
 
             if (rulestatus != ACTION_NOESCAPE) {
-                rewritelog(r, 1, "escaping %s for redirect", r->filename);
+                rewritelog((r, 1, NULL, "escaping %s for redirect",
+                            r->filename));
                 r->filename = escape_absolute_uri(r->pool, r->filename, skip);
             }
 
@@ -4169,7 +4176,9 @@
 
             /* now do the redirection */
             apr_table_setn(r->headers_out, "Location", r->filename);
-            rewritelog(r, 1, "redirect to %s [REDIRECT/%d]", r->filename, n);
+            rewritelog((r, 1, NULL, "redirect to %s [REDIRECT/%d]", r->filename,
+                        n));
+
             return n;
         }
         else if (flen > 10 && strncmp(r->filename, "forbidden:", 10) == 0) {
@@ -4199,7 +4208,7 @@
 #if APR_HAS_USER
             r->filename = expand_tildepaths(r, r->filename);
 #endif
-            rewritelog(r, 2, "local path result: %s", r->filename);
+            rewritelog((r, 2, NULL, "local path result: %s", r->filename));
 
             /* the filename must be either an absolute local path or an
              * absolute local URL.
@@ -4238,22 +4247,22 @@
                 r->uri = tmp;
 
                 if (res != OK) {
-                    rewritelog(r, 1, "prefixing with document_root of %s "
-                                     "FAILED", r->filename);
+                    rewritelog((r, 1, NULL, "prefixing with document_root of %s"
+                                " FAILED", r->filename));
 
                     return res;
                 }
 
-                rewritelog(r, 2, "prefixed with document_root to %s",
-                           r->filename);
+                rewritelog((r, 2, NULL, "prefixed with document_root to %s",
+                            r->filename));
             }
 
-            rewritelog(r, 1, "go-ahead with %s [OK]", r->filename);
+            rewritelog((r, 1, NULL, "go-ahead with %s [OK]", r->filename));
             return OK;
         }
     }
     else {
-        rewritelog(r, 1, "pass through %s", r->filename);
+        rewritelog((r, 1, NULL, "pass through %s", r->filename));
         return DECLINED;
     }
 }
@@ -4357,8 +4366,8 @@
             r->proxyreq = PROXYREQ_REVERSE;
             r->handler  = "proxy-server";
 
-            rewritelog(r, 1, "[per-dir %s] go-ahead with proxy request "
-                       "%s [OK]", dconf->directory, r->filename);
+            rewritelog((r, 1, dconf->directory, "go-ahead with proxy request "
+                        "%s [OK]", r->filename));
             return OK;
         }
         else if ((skip = is_absolute_uri(r->filename)) > 0) {
@@ -4373,11 +4382,9 @@
                 cp = r->filename + skip;
 
                 if ((cp = ap_strchr(cp, '/')) != NULL && *(++cp)) {
-                    rewritelog(r, 2,
-                               "[per-dir %s] trying to replace "
-                               "prefix %s with %s",
-                               dconf->directory, dconf->directory,
-                               dconf->baseurl);
+                    rewritelog((r, 2, dconf->directory, 
+                                "trying to replace prefix %s with %s",
+                                dconf->directory, dconf->baseurl));
 
                     /* I think, that hack needs an explanation:
                      * well, here is it:
@@ -4415,8 +4422,8 @@
 
             /* now prepare the redirect... */
             if (rulestatus != ACTION_NOESCAPE) {
-                rewritelog(r, 1, "[per-dir %s] escaping %s for redirect",
-                           dconf->directory, r->filename);
+                rewritelog((r, 1, dconf->directory, "escaping %s for redirect",
+                            r->filename));
                 r->filename = escape_absolute_uri(r->pool, r->filename, skip);
             }
 
@@ -4440,8 +4447,8 @@
 
             /* now do the redirection */
             apr_table_setn(r->headers_out, "Location", r->filename);
-            rewritelog(r, 1, "[per-dir %s] redirect to %s [REDIRECT/%d]",
-                       dconf->directory, r->filename, n);
+            rewritelog((r, 1, dconf->directory, "redirect to %s [REDIRECT/%d]",
+                        r->filename, n));
             return n;
         }
         else if (l > 10 && strncmp(r->filename, "forbidden:", 10) == 0) {
@@ -4479,9 +4486,8 @@
              * this would lead to a deadloop.
              */
             if (strcmp(r->filename, ofilename) == 0) {
-                rewritelog(r, 1, "[per-dir %s] initial URL equal rewritten "
-                           "URL: %s [IGNORING REWRITE]",
-                           dconf->directory, r->filename);
+                rewritelog((r, 1, dconf->directory, "initial URL equal rewritten"
+                            " URL: %s [IGNORING REWRITE]", r->filename));
                 return OK;
             }
 
@@ -4492,9 +4498,9 @@
              * plain URL
              */
             if (dconf->baseurl != NULL) {
-                rewritelog(r, 2,
-                           "[per-dir %s] trying to replace prefix %s with %s",
-                           dconf->directory, dconf->directory, dconf->baseurl);
+                rewritelog((r, 2, dconf->directory, "trying to replace prefix "
+                            "%s with %s", dconf->directory, dconf->baseurl));
+
                 r->filename = subst_prefix_path(r, r->filename,
                                                 dconf->directory,
                                                 dconf->baseurl);
@@ -4513,27 +4519,25 @@
                     }
                     if (!strncmp(r->filename, ccp, l) &&
                         r->filename[l] == '/') {
-                        rewritelog(r, 2,
-                                   "[per-dir %s] strip document_root "
-                                   "prefix: %s -> %s",
-                                   dconf->directory, r->filename,
-                                   r->filename+l);
+                        rewritelog((r, 2,dconf->directory, "strip document_root"
+                                    " prefix: %s -> %s", r->filename,
+                                    r->filename+l));
+
                         r->filename = apr_pstrdup(r->pool, r->filename+l);
                     }
                 }
             }
 
             /* now initiate the internal redirect */
-            rewritelog(r, 1, "[per-dir %s] internal redirect with %s "
-                       "[INTERNAL REDIRECT]", dconf->directory, r->filename);
+            rewritelog((r, 1, dconf->directory, "internal redirect with %s "
+                        "[INTERNAL REDIRECT]", r->filename));
             r->filename = apr_pstrcat(r->pool, "redirect:", r->filename, NULL);
             r->handler = "redirect-handler";
             return OK;
         }
     }
     else {
-        rewritelog(r, 1, "[per-dir %s] pass through %s",
-                   dconf->directory, r->filename);
+        rewritelog((r, 1, dconf->directory, "pass through %s", r->filename));
         return DECLINED;
     }
 }
@@ -4552,8 +4556,8 @@
         return DECLINED;
     }
     else {
-        rewritelog(r, 1, "force filename %s to have MIME-type '%s'",
-                   r->filename, t);
+        rewritelog((r, 1, NULL, "force filename %s to have MIME-type '%s'",
+                    r->filename, t));
         ap_set_content_type(r, t);
         return OK;
     }
@@ -4668,11 +4672,13 @@
     AP_INIT_TAKE1(   "RewriteLock",     cmd_rewritelock,     NULL, RSRC_CONF,
                      "the filename of a lockfile used for inter-process "
                      "synchronization"),
+#ifndef REWRITELOG_DISABLED
     AP_INIT_TAKE1(   "RewriteLog",      cmd_rewritelog,      NULL, RSRC_CONF,
                      "the filename of the rewriting logfile"),
     AP_INIT_TAKE1(   "RewriteLogLevel", cmd_rewriteloglevel, NULL, RSRC_CONF,
                      "the level of the rewriting logfile verbosity "
                      "(0=none, 1=std, .., 9=max)"),
+#endif
     { NULL }
 };
 

Reply via email to