aboutsummaryrefslogtreecommitdiff
path: root/nginx/ngx_js.c
diff options
context:
space:
mode:
authorDmitry Volyntsev <xeioex@nginx.com>2022-07-25 18:40:24 -0700
committerDmitry Volyntsev <xeioex@nginx.com>2022-07-25 18:40:24 -0700
commit5e0434747e3b93e04c661f90dee8ef22e190be22 (patch)
tree6f3eadb63fb8489b5e7ca8a654397d8e94faf86a /nginx/ngx_js.c
parent9480746fb1246de9e0dff3529c99704bfa938f24 (diff)
downloadnjs-5e0434747e3b93e04c661f90dee8ef22e190be22.tar.gz
njs-5e0434747e3b93e04c661f90dee8ef22e190be22.zip
Added generic logger callback.
This allows for a host environment to control when and how internal NJS messages are logged.
Diffstat (limited to 'nginx/ngx_js.c')
-rw-r--r--nginx/ngx_js.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/nginx/ngx_js.c b/nginx/ngx_js.c
index 6799b182..903d51f2 100644
--- a/nginx/ngx_js.c
+++ b/nginx/ngx_js.c
@@ -318,3 +318,18 @@ ngx_js_ext_log(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
}
+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_connection_t *c;
+ ngx_log_handler_pt handler;
+
+ c = ngx_external_connection(vm, external);
+ handler = c->log->handler;
+ c->log->handler = NULL;
+
+ ngx_log_error((ngx_uint_t) level, c->log, 0, "js: %*s", length, start);
+
+ c->log->handler = handler;
+}