]> git.kaiwu.me - njs.git/commitdiff
Modules: fixed nginx logger callback for calls in master.
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 13 Dec 2022 05:55:47 +0000 (21:55 -0800)
committerDmitry Volyntsev <xeioex@nginx.com>
Tue, 13 Dec 2022 05:55:47 +0000 (21:55 -0800)
nginx/ngx_js.c

index 7a8164983ff753b75c904f89ad03eb04d29bbff0..52428229e59b0e16f3019aad2ec9fdb450376ebc 100644 (file)
@@ -376,16 +376,30 @@ void
 ngx_js_logger(njs_vm_t *vm, njs_external_ptr_t external, njs_log_level_t level,
     const u_char *start, size_t length)
 {
+    ngx_log_t           *log;
     ngx_connection_t    *c;
     ngx_log_handler_pt   handler;
 
-    c = ngx_external_connection(vm, external);
-    handler = c->log->handler;
-    c->log->handler = NULL;
+    handler = NULL;
 
-    ngx_log_error((ngx_uint_t) level, c->log, 0, "js: %*s", length, start);
+    if (external != NULL) {
+        c = ngx_external_connection(vm, external);
+        log =  c->log;
+        handler = log->handler;
+        log->handler = NULL;
 
-    c->log->handler = handler;
+    } else {
+
+        /* Logger was called during init phase. */
+
+        log = ngx_cycle->log;
+    }
+
+    ngx_log_error((ngx_uint_t) level, log, 0, "js: %*s", length, start);
+
+    if (external != NULL) {
+        log->handler = handler;
+    }
 }