You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by me...@apache.org on 2020/11/15 11:46:56 UTC
[apisix] branch master updated: fix: the log report of the custom
log format is incorrect. (#2729)
This is an automated email from the ASF dual-hosted git repository.
membphis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git
The following commit(s) were added to refs/heads/master by this push:
new 8166f7a fix: the log report of the custom log format is incorrect. (#2729)
8166f7a is described below
commit 8166f7a2d7cbafa9d3f0a3d6c770404b3d1cd93f
Author: Firstsawyou <52...@users.noreply.github.com>
AuthorDate: Sun Nov 15 19:46:50 2020 +0800
fix: the log report of the custom log format is incorrect. (#2729)
fix #2723
---
apisix/plugins/http-logger.lua | 2 +-
t/plugin/http-logger-log-format.t | 227 +++++++++++++++++++++++++++++++++++++-
2 files changed, 224 insertions(+), 5 deletions(-)
diff --git a/apisix/plugins/http-logger.lua b/apisix/plugins/http-logger.lua
index 7378fec..853ce42 100644
--- a/apisix/plugins/http-logger.lua
+++ b/apisix/plugins/http-logger.lua
@@ -151,7 +151,7 @@ local function gen_log_format(metadata)
end
for k, var_name in pairs(metadata.value.log_format) do
- if var_name:byte(1, 1) == str_byte("/") then
+ if var_name:byte(1, 1) == str_byte("$") then
log_format[k] = {true, var_name:sub(2)}
else
log_format[k] = {false, var_name}
diff --git a/t/plugin/http-logger-log-format.t b/t/plugin/http-logger-log-format.t
index d092eeb..9526041 100644
--- a/t/plugin/http-logger-log-format.t
+++ b/t/plugin/http-logger-log-format.t
@@ -66,7 +66,7 @@ passed
-=== TEST 2: sanity, batch_max_size=1
+=== TEST 2: sanity, batch_max_size=1 and concat_method is new_line
--- config
location /t {
content_by_lua_block {
@@ -118,12 +118,208 @@ hello world
--- wait: 0.5
--- no_error_log
[error]
---- error_log
-request log: {
+--- error_log eval
+qr/request log: \{"host":"localhost","\@timestamp":.*,"client_ip":"127.0.0.1","route_id":"1"\}/
-=== TEST 4: remove plugin metadata
+=== TEST 4: sanity, batch_max_size=2 and concat_method is new_line
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/routes/1',
+ ngx.HTTP_PUT,
+ [[{
+ "plugins": {
+ "http-logger": {
+ "uri": "http://127.0.0.1:1980/log",
+ "batch_max_size": 2,
+ "max_retry_count": 1,
+ "retry_delay": 2,
+ "buffer_duration": 2,
+ "inactive_timeout": 2,
+ "concat_method": "new_line"
+ }
+ },
+ "upstream": {
+ "nodes": {
+ "127.0.0.1:1982": 1
+ },
+ "type": "roundrobin"
+ },
+ "uri": "/hello"
+ }]]
+ )
+
+ if code >= 300 then
+ ngx.status = code
+ end
+ ngx.say(body)
+ }
+ }
+--- request
+GET /t
+--- response_body
+passed
+--- no_error_log
+[error]
+
+
+
+=== TEST 5: hit route and report http logger
+--- config
+location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+
+ for i = 1, 2 do
+ t('/hello', ngx.HTTP_GET)
+ end
+
+ ngx.sleep(3)
+ ngx.say("done")
+ }
+}
+--- request
+GET /t
+--- error_code: 200
+--- no_error_log
+[error]
+--- grep_error_log eval
+qr/"host":"127.0.0.1","\@timestamp":/
+--- grep_error_log_out
+"host":"127.0.0.1","@timestamp":
+"host":"127.0.0.1","@timestamp":
+
+
+
+=== TEST 6: sanity, batch_max_size=1 and concat_method is json
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/routes/1',
+ ngx.HTTP_PUT,
+ [[{
+ "plugins": {
+ "http-logger": {
+ "uri": "http://127.0.0.1:1980/log",
+ "batch_max_size": 1,
+ "max_retry_count": 1,
+ "retry_delay": 2,
+ "buffer_duration": 2,
+ "inactive_timeout": 2,
+ "concat_method": "json"
+ }
+ },
+ "upstream": {
+ "nodes": {
+ "127.0.0.1:1982": 1
+ },
+ "type": "roundrobin"
+ },
+ "uri": "/hello"
+ }]]
+ )
+
+ if code >= 300 then
+ ngx.status = code
+ end
+ ngx.say(body)
+ }
+ }
+--- request
+GET /t
+--- response_body
+passed
+--- no_error_log
+[error]
+
+
+
+=== TEST 7: hit route and report http logger
+--- request
+GET /hello
+--- response_body
+hello world
+--- wait: 0.5
+--- no_error_log
+[error]
+--- error_log eval
+qr/request log: \{"host":"localhost","\@timestamp":.*,"client_ip":"127.0.0.1","route_id":"1"\}/
+
+
+
+=== TEST 8: sanity, batch_max_size=2 and concat_method is json
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/routes/1',
+ ngx.HTTP_PUT,
+ [[{
+ "plugins": {
+ "http-logger": {
+ "uri": "http://127.0.0.1:1980/log",
+ "batch_max_size": 2,
+ "max_retry_count": 1,
+ "retry_delay": 2,
+ "buffer_duration": 2,
+ "inactive_timeout": 2,
+ "concat_method": "json"
+ }
+ },
+ "upstream": {
+ "nodes": {
+ "127.0.0.1:1982": 1
+ },
+ "type": "roundrobin"
+ },
+ "uri": "/hello"
+ }]]
+ )
+
+ if code >= 300 then
+ ngx.status = code
+ end
+ ngx.say(body)
+ }
+ }
+--- request
+GET /t
+--- response_body
+passed
+--- no_error_log
+[error]
+
+
+
+=== TEST 9: hit route and report http logger
+--- config
+location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+
+ for i = 1, 2 do
+ t('/hello', ngx.HTTP_GET)
+ end
+
+ ngx.sleep(3)
+ ngx.say("done")
+ }
+}
+--- request
+GET /t
+--- error_code: 200
+--- no_error_log
+[error]
+--- error_log eval
+qr/request log: \[\{"host":"127.0.0.1","\@timestamp":.*,"client_ip":"127.0.0.1","route_id":"1"\},\{"host":"127.0.0.1","\@timestamp":.*,"client_ip":"127.0.0.1","route_id":"1"\}\]/
+
+
+
+=== TEST 10: remove plugin metadata
--- config
location /t {
content_by_lua_block {
@@ -145,3 +341,26 @@ GET /t
passed
--- no_error_log
[error]
+
+
+
+=== TEST 11: remove route
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/routes/1', ngx.HTTP_DELETE)
+
+ if code >= 300 then
+ ngx.status = code
+ end
+
+ ngx.say(body)
+ }
+ }
+--- request
+GET /t
+--- response_body
+passed
+--- no_error_log
+[error]