From 691ba795ced07364d491e8abbdf0c8c8d3778c14 Mon Sep 17 00:00:00 2001 From: Chrono Date: Wed, 17 Apr 2024 14:46:46 +0800 Subject: [PATCH] feat(resty.kong.log): add more return value for `resty.kong.log.get_log_level()` (#88) KAG-4258 --------- Co-authored-by: Datong Sun --- README.md | 8 +- lualib/resty/kong/log.lua | 26 ++- src/ngx_http_lua_kong_log.c | 46 +++++- t/008-log.t | 318 ++++++++++++++++++++++++++++++------ 4 files changed, 333 insertions(+), 65 deletions(-) diff --git a/README.md b/README.md index 480a76e6..4d7c1b42 100644 --- a/README.md +++ b/README.md @@ -463,14 +463,16 @@ If we don’t pass timeout to set_log_level(), it will raise a Lua error. resty.kong.log.get\_log\_level ---------------------------------- -**syntax:** *resty.kong.log.get_log_level(level)* +**syntax:** *current_level, timeout, original_level = resty.kong.log.get_log_level()* **context:** *any* **subsystems:** *http* -If the dynamic log level is set, it will return the dynamic log level, -otherwise it will return `level`. +Returns the current dynamic log level, remaining timeout and the original log level. + +If the dynamic log level is not set or not active, +`timeout` will be `0`. Please see [Nginx log level constants](https://github.com/openresty/lua-nginx-module#nginx-log-level-constants) for the possible value of `level`. diff --git a/lualib/resty/kong/log.lua b/lualib/resty/kong/log.lua index 32193965..336206d3 100644 --- a/lualib/resty/kong/log.lua +++ b/lualib/resty/kong/log.lua @@ -26,7 +26,8 @@ int ngx_http_lua_kong_ffi_set_dynamic_log_level(int log_level, int timeout); int -ngx_http_lua_kong_ffi_get_dynamic_log_level(int current_log_level); +ngx_http_lua_kong_ffi_get_dynamic_log_level(ngx_http_request_t *r, + int *current_log_level, int *timeout, int *original_log_level); ]]) @@ -57,11 +58,26 @@ function _M.set_log_level(level, timeout) end -function _M.get_log_level(level) - assert(type(level) == "number", "level must be a number") - assert(math_floor(level) == level, "level must be an integer") +do + local tonumber = tonumber + local get_request = base.get_request + + local current_log_level = ffi.new("int[1]") + local original_log_level = ffi.new("int[1]") + local timeout = ffi.new("int[1]") - return tonumber(C.ngx_http_lua_kong_ffi_get_dynamic_log_level(level)) + function _M.get_log_level() + local rc = C.ngx_http_lua_kong_ffi_get_dynamic_log_level(get_request(), + current_log_level, + timeout, + original_log_level) + if rc ~= NGX_OK then + error("failed to get dynamic log level: " .. tostring(rc)) + end + + return tonumber(current_log_level[0]), tonumber(timeout[0]), + tonumber(original_log_level[0]) + end end diff --git a/src/ngx_http_lua_kong_log.c b/src/ngx_http_lua_kong_log.c index 8ba12828..ece5f5cd 100644 --- a/src/ngx_http_lua_kong_log.c +++ b/src/ngx_http_lua_kong_log.c @@ -25,7 +25,7 @@ ** ** Excluding the technical view, ** the Kong Gateway does not supoort the Windows OS. -** +** */ #error "The dynamic log level feature is only supported on UNIX like system" #endif @@ -36,7 +36,7 @@ static ngx_uint_t g_dynamic_log_level = NGX_CONF_UNSET_UINT; /* after this time, the dynamic log level will restore to original value */ -static time_t g_dynamic_log_level_timeout_at; +static time_t g_dynamic_log_level_timeout_at; /* ------------------------------------------------------------------------- */ @@ -64,11 +64,12 @@ ngx_http_lua_kong_ffi_set_dynamic_log_level(int log_level, int timeout) } g_dynamic_log_level = log_level; - g_dynamic_log_level_timeout_at = (time_t)ngx_time() + (time_t)timeout; + g_dynamic_log_level_timeout_at = (time_t) ngx_time() + (time_t) timeout; return NGX_OK; } + ngx_uint_t ngx_http_lua_kong_get_dynamic_log_level(ngx_uint_t current_log_level) { @@ -76,7 +77,7 @@ ngx_http_lua_kong_get_dynamic_log_level(ngx_uint_t current_log_level) return current_log_level; } - if (g_dynamic_log_level_timeout_at < ngx_time()) { + if (g_dynamic_log_level_timeout_at <= ngx_time()) { g_dynamic_log_level = NGX_CONF_UNSET_UINT; return current_log_level; } @@ -84,8 +85,41 @@ ngx_http_lua_kong_get_dynamic_log_level(ngx_uint_t current_log_level) return g_dynamic_log_level; } + int -ngx_http_lua_kong_ffi_get_dynamic_log_level(int current_log_level) +ngx_http_lua_kong_ffi_get_dynamic_log_level(ngx_http_request_t *r, + int *current_log_level, int *timeout, int *original_log_level) { - return ngx_http_lua_kong_get_dynamic_log_level(current_log_level); + if (current_log_level == NULL || timeout == NULL || original_log_level == NULL) { + return NGX_ERROR; + } + + *original_log_level = r == NULL ? + ngx_cycle->log->log_level: + r->connection->log->log_level; + + /* nginx's log_level may be 0x7ffffff0, 0x80000000 + * see src/core/ngx_log.h + */ + if (*original_log_level > NGX_LOG_DEBUG) { + *original_log_level = NGX_LOG_DEBUG; + } + + /* timeout, disable the dynamic log level */ + if (g_dynamic_log_level_timeout_at <= ngx_time()) { + g_dynamic_log_level = NGX_CONF_UNSET_UINT; + } + + if (g_dynamic_log_level == NGX_CONF_UNSET_UINT) { + *current_log_level = *original_log_level; + *timeout = 0; + + } else { + *current_log_level = g_dynamic_log_level; + *timeout = g_dynamic_log_level_timeout_at - (time_t) ngx_time(); + } + + ngx_http_lua_kong_assert(*timeout >= 0); + + return NGX_OK; } diff --git a/t/008-log.t b/t/008-log.t index 98bc1003..419c798a 100644 --- a/t/008-log.t +++ b/t/008-log.t @@ -72,10 +72,18 @@ ok local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 2) - assert(log.get_log_level(ngx.WARN) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 2) + assert(orig_log == ngx.WARN) ngx.sleep(3) - assert(log.get_log_level(ngx.WARN) == ngx.WARN) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.WARN) + assert(timeout == 0) + assert(orig_log == ngx.WARN) ngx.say("ok") } @@ -101,12 +109,28 @@ ok local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 2) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 2) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me") - ngx.sleep(3) + ngx.sleep(1) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 1) + assert(orig_log == ngx.WARN) + + ngx.sleep(2) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.WARN) + assert(timeout == 0) + assert(orig_log == ngx.WARN) - assert(log.get_log_level(ngx.WARN) == ngx.WARN) ngx.log(ngx.DEBUG, "you can't see me") ngx.say("ok") } @@ -129,12 +153,22 @@ you can see me local log = require("resty.kong.log") ngx.log(ngx.ERR, "you can't see error") log.set_log_level(ngx.ERR, 30) - assert(log.get_log_level(ngx.ERR) == ngx.ERR) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.ERR) + assert(timeout == 30) + assert(orig_log == ngx.ALERT) + ngx.log(ngx.ERR, "you can see error") ngx.log(ngx.DEBUG, "you can't see debug") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.ALERT) + ngx.log(ngx.DEBUG, "you can see debug") ngx.say("ok") @@ -159,7 +193,12 @@ GET /test content_by_lua_block { local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "debug t1") ngx.say("ok") } @@ -168,7 +207,12 @@ GET /test location = /t2 { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "debug t2") ngx.say("ok") } @@ -195,7 +239,12 @@ GET /test content_by_lua_block { local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "debug log in t1") ngx.say("ok") } @@ -204,7 +253,12 @@ GET /test location = /t2 { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "debug log in t2") ngx.say("ok") } @@ -241,7 +295,12 @@ GET /test content_by_lua_block { local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "debug log on port 8091") ngx.say("ok") } @@ -253,7 +312,11 @@ GET /test location / { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "debug log on port 8092") ngx.say("ok") } @@ -288,7 +351,12 @@ GET /test local log = require("resty.kong.log") ngx.log(ngx.DEBUG, "you can't see me") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me") end) } @@ -315,11 +383,19 @@ you can see me ngx.timer.at(0, function() log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) end) ngx.sleep(0.1) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me t1") } } @@ -327,7 +403,11 @@ you can see me location = /t2 { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me t2") } } @@ -366,11 +446,19 @@ you can see me ngx.timer.at(0, function() log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) end) ngx.sleep(0.1) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me 8091") } } @@ -381,7 +469,11 @@ you can see me location / { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me 8092") } } @@ -430,11 +522,19 @@ you can't see me 8091 ngx.timer.at(0, function() log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.NOTICE) end) - + ngx.sleep(0.1) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.NOTICE) + ngx.log(ngx.DEBUG, "you can see me 8091") } } @@ -447,7 +547,11 @@ you can't see me 8091 location / { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.NOTICE) + ngx.log(ngx.DEBUG, "you can see me 8092") } } @@ -479,7 +583,12 @@ you can't see me 8091 local errlog = require("ngx.errlog") errlog.raw_log(ngx.DEBUG, "you can't see me") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + errlog.raw_log(ngx.DEBUG, "you can see me") } } @@ -541,11 +650,19 @@ you can't see me ngx.timer.at(0, function() log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) end) ngx.sleep(0.1) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me 8091") } } @@ -558,7 +675,11 @@ you can't see me location / { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me 8092") } } @@ -586,11 +707,19 @@ you can't see me content_by_lua_block { local log = require("resty.kong.log") ngx.timer.at(0, function() - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me") end) log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.sleep(0.1) } } @@ -610,10 +739,15 @@ you can see me location = /test { rewrite_by_lua_block { local log = require("resty.kong.log") - + ngx.log(ngx.DEBUG, "you can't see me") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me") } @@ -640,7 +774,12 @@ you can't see me local log = require("resty.kong.log") ngx.log(ngx.DEBUG, "you can't see me timer init_worker") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me timer init_worker") end) ngx.log(ngx.DEBUG, "you can't see me init_worker") @@ -650,7 +789,11 @@ you can't see me location = /test { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me content") } } @@ -671,7 +814,12 @@ you can't see me init_worker ngx.log(ngx.DEBUG, "you can't see me") local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me") } --- config @@ -695,14 +843,23 @@ you can't see me ngx.log(ngx.DEBUG, "you can't see me init_worker") local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me init_worker") } --- config location = /test { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me content") } } @@ -724,7 +881,12 @@ you can't see me init_worker ngx.log(ngx.DEBUG, "you can't see me init_worker") local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me init_worker") } --- config @@ -732,7 +894,11 @@ you can't see me init_worker error_log logs/error.log warn; content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me content") } } @@ -758,13 +924,21 @@ you can't see me init_worker end) local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) } --- config location = /test { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me content") } } @@ -790,15 +964,24 @@ GET /test ngx.timer.at(0, function() local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 30) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me timer3") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) end) } --- config location = /test { content_by_lua_block { local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me content") } } @@ -829,7 +1012,12 @@ GET /test ngx.timer.at(0, function() local log = require("resty.kong.log") log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me timer3") end) } @@ -838,7 +1026,11 @@ GET /test content_by_lua_block { ngx.timer.at(0, function() local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me content timer") end) } @@ -864,12 +1056,20 @@ GET /test local log = require("resty.kong.log") ngx.timer.at(0.2, function() - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me timer at") end) ngx.timer.every(0.1, function() log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me timer every") end) } @@ -878,7 +1078,11 @@ GET /test content_by_lua_block { ngx.timer.at(0.25, function() local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me content timer at") end) } @@ -907,13 +1111,21 @@ GET /test ngx.log(ngx.DEBUG, "you can't see me init_worker") -- should not be printed ngx.update_time() ngx.sleep(1) -- wait for the log level change - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me init_worker") -- should be printed end) ngx.timer.at(0.2, function() log.set_log_level(ngx.DEBUG, 30) - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(timeout == 30) + assert(orig_log == ngx.WARN) end) } @@ -922,7 +1134,11 @@ GET /test content_by_lua_block { ngx.timer.at(0.25, function() local log = require("resty.kong.log") - assert(log.get_log_level(ngx.ALERT) == ngx.DEBUG) + + local cur_log, timeout, orig_log = log.get_log_level() + assert(cur_log == ngx.DEBUG) + assert(orig_log == ngx.WARN) + ngx.log(ngx.DEBUG, "you can see me content") end) }