nginx-0.0.2-2004-02-11-20:08:49 import
diff --git a/src/http/modules/proxy/ngx_http_proxy_cache.c b/src/http/modules/proxy/ngx_http_proxy_cache.c
index 9661cff..ce2226d 100644
--- a/src/http/modules/proxy/ngx_http_proxy_cache.c
+++ b/src/http/modules/proxy/ngx_http_proxy_cache.c
@@ -167,8 +167,9 @@
 
     ngx_cpystrn(c->status_line.data, p->status_start, c->status_line.len + 1);
 
-    ngx_log_debug(r->connection->log, "http cache status %d '%s'" _ 
-                  c->status _ c->status_line.data);
+    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                   "http cache status %d \"%s\"", 
+                   c->status, c->status_line.data);
 
     /* TODO: ngx_init_table */
     c->headers_in.headers = ngx_create_table(r->pool, 20);
@@ -212,8 +213,9 @@
                 }
             }
 
-            ngx_log_debug(r->connection->log, "HTTP cache header: '%s: %s'" _
-                          h->key.data _ h->value.data);
+            ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                           "http cache header: \"%s: %s\"",
+                           h->key.data, h->value.data);
 
             continue;
 
@@ -221,7 +223,8 @@
 
             /* a whole header has been parsed successfully */
 
-            ngx_log_debug(r->connection->log, "HTTP header done");
+            ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                           "http cache header done");
 
             c->ctx.file_start = p->header_in->pos - p->header_in->start;
 
@@ -253,7 +256,8 @@
     rc = ngx_http_busy_lock_cachable(p->lcf->busy_lock, &p->busy_lock,
                                      p->try_busy_lock);
 
-ngx_log_debug(p->request->connection->log, "LOCK CACHABLE: %d" _ rc);
+    ngx_log_debug1(NGX_LOG_DEBUG_HTTP, p->request->connection->log, 0,
+                   "http cache busy lock cachable: %d", rc);
 
     if (rc == NGX_OK) {
         if (p->try_busy_lock) {
@@ -354,8 +358,9 @@
         return;
     }
 
-ngx_log_debug(p->request->connection->log, "OLD: %d, NEW: %d" _
-              p->cache->ctx.file.fd _ ctx->file.fd);
+    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, p->request->connection->log, 0,
+                   "http cache old fd:%d, new fd:%d",
+                   p->cache->ctx.file.fd, ctx->file.fd);
 
     if (p->cache->ctx.file.fd != NGX_INVALID_FILE) {
         if (ngx_close_file(p->cache->ctx.file.fd) == NGX_FILE_ERROR) {
@@ -603,8 +608,9 @@
 
     ep = p->upstream->event_pipe;
 
-ngx_log_debug(p->request->connection->log, "LEN: " OFF_T_FMT ", " OFF_T_FMT _
-              p->cache->ctx.length _ ep->read_length);
+    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, p->request->connection->log, 0,
+                   "http cache update len: " OFF_T_FMT ":" OFF_T_FMT,
+                   p->cache->ctx.length, ep->read_length);
 
     if (p->cache->ctx.length == -1) {
         /* TODO: test rc */
diff --git a/src/http/modules/proxy/ngx_http_proxy_handler.c b/src/http/modules/proxy/ngx_http_proxy_handler.c
index 84396a9..59b1c06 100644
--- a/src/http/modules/proxy/ngx_http_proxy_handler.c
+++ b/src/http/modules/proxy/ngx_http_proxy_handler.c
@@ -346,7 +346,7 @@
     ngx_http_request_t    *r;
     ngx_http_proxy_ctx_t  *p;
 
-    ngx_log_debug(wev->log, "http proxy check client");
+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, wev->log, 0, "http proxy check client");
 
     c = wev->data;
     r = c->data;
@@ -362,14 +362,16 @@
 
         if (!p->cachable && p->upstream->peer.connection) {
             ngx_log_error(NGX_LOG_INFO, wev->log, wev->kq_errno,
-                          "client closed prematurely connection, "
+                          "kevent() reported that client have closed "
+                          "prematurely connection, "
                           "so upstream connection is closed too");
             ngx_http_proxy_finalize_request(p, NGX_HTTP_CLIENT_CLOSED_REQUEST);
             return;
         }
 
         ngx_log_error(NGX_LOG_INFO, wev->log, wev->kq_errno,
-                      "client closed prematurely connection");
+                      "kevent() reported that client have closed "
+                      "prematurely connection");
 
         if (p->upstream == NULL || p->upstream->peer.connection == NULL) {
             ngx_http_proxy_finalize_request(p, NGX_HTTP_CLIENT_CLOSED_REQUEST);
@@ -385,7 +387,7 @@
     ngx_http_request_t    *r;
     ngx_http_proxy_ctx_t  *p;
 
-    ngx_log_debug(rev->log, "busy lock");
+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, rev->log, 0, "http proxy busy lock");
 
     c = rev->data;
     r = c->data;
@@ -412,11 +414,12 @@
         return;
     }
 
-    ngx_log_debug(rev->log, "client sent while busy lock");
+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, rev->log, 0,
+                   "http proxy: client sent while busy lock");
 
     /*
      * TODO: kevent() notify about error, otherwise we need to
-     * call ngx_peek(): recv(MSG_PEEK) to get errno. THINK about aio
+     * call ngx_peek(): recv(MSG_PEEK) to get errno. THINK about aio.
      * if there's no error we need to disable event.
      */
 
@@ -452,7 +455,8 @@
 
     r = p->request;
 
-    ngx_log_debug(r->connection->log, "finalize http proxy request");
+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                   "finalize http proxy request");
 
     if (p->upstream && p->upstream->peer.connection) {
         ngx_http_proxy_close_connection(p);
@@ -470,12 +474,15 @@
     }
 
     if (p->upstream && p->upstream->event_pipe) {
-ngx_log_debug(r->connection->log, "TEMP FD: %d" _
-              p->upstream->event_pipe->temp_file->file.fd);
+        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                       "http proxy temp fd: %d",
+                       p->upstream->event_pipe->temp_file->file.fd);
     }
 
     if (p->cache) {
-ngx_log_debug(r->connection->log, "CACHE FD: %d" _ p->cache->ctx.file.fd);
+        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                       "http proxy cache fd: %d",
+                       p->cache->ctx.file.fd);
     }
 
     if (p->upstream && p->upstream->event_pipe) {
@@ -504,7 +511,8 @@
         p->lcf->busy_lock->busy--;
     }
 
-    ngx_log_debug(c->log, "proxy close connection: %d" _ c->fd);
+    ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0,
+                   "http proxy close connection: %d", c->fd);
 
     if (c->fd == -1) {
 #if 0
diff --git a/src/http/modules/proxy/ngx_http_proxy_upstream.c b/src/http/modules/proxy/ngx_http_proxy_upstream.c
index d36cbee..a65b864 100644
--- a/src/http/modules/proxy/ngx_http_proxy_upstream.c
+++ b/src/http/modules/proxy/ngx_http_proxy_upstream.c
@@ -192,15 +192,19 @@
 
         *(h->last++) = CR; *(h->last++) = LF;
 
-        ngx_log_debug(r->connection->log, "proxy: '%s: %s'" _
-                      header[i].key.data _ header[i].value.data);
+        ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                       "http proxy header: \"%s: %s\"",
+                       header[i].key.data, header[i].value.data);
     }
 
     /* add "\r\n" at the header end */
     *(h->last++) = CR; *(h->last++) = LF;
 
-    /* STUB */ *(h->last) = '\0';
-    ngx_log_debug(r->connection->log, "PROXY:\n'%s'" _ h->pos);
+#if (NGX_DEBUG)
+    *(h->last) = '\0';
+    ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                   "http proxy header:\n\"%s\"", h->pos);
+#endif
 
     return chain;
 }
@@ -218,8 +222,9 @@
 
     r = p->request;
 
-ngx_log_debug(r->connection->log, "timer_set: %d" _
-              r->connection->read->timer_set);
+    ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                  "http proxy set timer: %d",
+                  r->connection->read->timer_set);
 
     if (r->connection->read->timer_set) {
         ngx_del_timer(r->connection->read);
@@ -588,7 +593,7 @@
 
 static void ngx_http_proxy_dummy_handler(ngx_event_t *wev)
 {
-    ngx_log_debug(wev->log, "dummy handler");
+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, wev->log, 0, "http proxy dummy handler");
 }
 
 
@@ -603,7 +608,8 @@
     p = c->data;
     p->action = "reading upstream status line";
 
-    ngx_log_debug(rev->log, "http proxy process status line");
+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, rev->log, 0,
+                   "http proxy process status line");
 
     if (rev->timedout) {
         ngx_http_proxy_next_upstream(p, NGX_HTTP_PROXY_FT_TIMEOUT);
@@ -717,8 +723,9 @@
     ngx_cpystrn(p->upstream->status_line.data, p->status_start,
                 p->upstream->status_line.len + 1);
 
-    ngx_log_debug(rev->log, "http proxy status %d '%s'" _
-                  p->upstream->status _ p->upstream->status_line.data);
+    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, rev->log, 0,
+                   "http proxy status %d \"%s\"",
+                   p->upstream->status, p->upstream->status_line.data);
 
     if (p->upstream->headers_in.headers) {
         p->upstream->headers_in.headers->nelts = 0;
@@ -747,7 +754,8 @@
     r = p->request;
     p->action = "reading upstream headers";
 
-    ngx_log_debug(rev->log, "http proxy process header line");
+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, rev->log, 0,
+                   "http proxy process header line");
 
     if (rev->timedout) {
         ngx_http_proxy_next_upstream(p, NGX_HTTP_PROXY_FT_TIMEOUT);
@@ -818,8 +826,9 @@
                 }
             }
 
-            ngx_log_debug(c->log, "HTTP proxy header: '%s: %s'" _
-                          h->key.data _ h->value.data);
+            ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
+                           "http proxy header: \"%s: %s\"",
+                           h->key.data, h->value.data);
 
             continue;
 
@@ -827,7 +836,8 @@
 
             /* a whole header has been parsed successfully */
 
-            ngx_log_debug(c->log, "HTTP header done");
+            ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0,
+                           "http proxy header done");
 
             /* TODO: hook to process the upstream header */
 
@@ -1072,13 +1082,15 @@
     c = ev->data;
 
     if (ev->write) {
-        ngx_log_debug(ev->log, "http proxy process downstream");
+        ngx_log_debug0(NGX_LOG_DEBUG_HTTP, ev->log, 0,
+                       "http proxy process downstream");
         r = c->data;
         p = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
         p->action = "sending to client";
 
     } else {
-        ngx_log_debug(ev->log, "http proxy process upstream");
+        ngx_log_debug0(NGX_LOG_DEBUG_HTTP, ev->log, 0,
+                       "http proxy process upstream");
         p = c->data;
         r = p->request;
         p->action = "reading upstream body";
@@ -1125,7 +1137,8 @@
         }
 
         if (ep->upstream_done || ep->upstream_eof || ep->upstream_error) {
-            ngx_log_debug(ev->log, "http proxy upstream exit");
+            ngx_log_debug0(NGX_LOG_DEBUG_HTTP, ev->log, 0,
+                           "http proxy upstream exit");
             ngx_http_busy_unlock(p->lcf->busy_lock, &p->busy_lock);
             ngx_http_proxy_finalize_request(p, 0);
             return;
@@ -1133,30 +1146,12 @@
     }
 
     if (ep->downstream_error) {
-        ngx_log_debug(ev->log, "http proxy downstream error");
+        ngx_log_debug0(NGX_LOG_DEBUG_HTTP, ev->log, 0,
+                       "http proxy downstream error");
         if (!p->cachable && p->upstream->peer.connection) {
             ngx_http_proxy_finalize_request(p, 0);
         }
     }
-
-#if 0
-    if (ep->downstream_done) {
-        ngx_log_debug(ev->log, "http proxy downstream done");
-        ngx_http_proxy_finalize_request(p, 0);
-        return;
-    }
-
-    if (ep->downstream_error) {
-        ngx_log_debug(ev->log, "http proxy downstream error");
-        if (!p->cachable && p->upstream->peer.connection) {
-            ngx_http_proxy_close_connection(p);
-        }
- 
-        if (p->upstream->peer.connection == NULL) {
-            ngx_http_close_request(r);
-        }
-    }
-#endif
 }
 
 
@@ -1164,7 +1159,8 @@
 {
     int  status;
 
-ngx_log_debug(p->request->connection->log, "next upstream: %d" _ ft_type);
+    ngx_log_debug1(NGX_LOG_DEBUG_HTTP, p->request->connection->log, 0,
+                   "http proxy next upstream: %d", ft_type);
 
     ngx_http_busy_unlock(p->lcf->busy_lock, &p->busy_lock);