|
#cd /app/local/nginx/lua/
#vim parse.lua
local args = {}
args = ngx.req.get_uri_args()
local v_prev = ""
local sp = "\""
for key,val in pairs(args) do
if key == nil or val == nil then
else
v_prev = v_prev .. sp .. key .. sp .. ":" .. sp .. val .. sp .. ","
end
end
function isnil(value)
if value == nil then
value = "-"
end
return value
end
local logContent = ""
if v_prev ~= nil then
local http_cdn_src_ip = isnil(ngx.var.http_cdn_src_ip)
local time_local = isnil(ngx.var.time_local)
local status = isnil(ngx.var.status)
local body_bytes_sent = isnil(ngx.var.body_bytes_sent)
local request_body = isnil(ngx.var.request_body)
local content_length = isnil(ngx.var.content_length)
local http_referer = isnil(ngx.var.http_referer)
local http_user_agent = isnil(ngx.var.http_user_agent)
local http_x_forwarded_for = isnil(ngx.var.http_x_forwarded_for)
local remote_addr = isnil(ngx.var.remote_addr)
local upstream_response_time = isnil(ngx.var.upstream_response_time)
local request_time = isnil(ngx.var.request_time)
local http_x_trace_code = isnil(ngx.var.http_x_trace_code)
logContent = "{\"http_cdn_src_ip\":" .. sp .. http_cdn_src_ip .. sp .. ",\"time_local\":" .. sp .. time_local .. sp .. ",\"request\":" .. "{" .. string.sub(v_prev,1,#v_prev-1) .. "}" .. ",\"status\":" .. sp .. status .. sp .. ",\"body_bytes_sent\":" .. sp .. body_bytes_sent .. sp .. ",\"request_body\":" .. sp .. request_body .. sp .. ",\"content_length\":" .. sp .. content_length .. sp .. ",\"http_referer\":" .. sp .. http_referer .. sp .. ",\"http_user_agent\":" .. sp .. http_user_agent .. sp .. ",\"http_x_forwarded_for\":" .. sp .. http_x_forwarded_for .. sp .. ",\"remote_addr\":" .. sp .. remote_addr .. sp .. ",\"upstream_response_time\":" .. sp .. upstream_response_time .. sp .. ",\"request_time\":" .. sp .. request_time .. sp .. ",\"http_x_trace_code\":" .. sp .. http_x_trace_code .. sp .. "}"
local file = io.open("/app/data/log/nginx/ckl_access.log","a")
local hc = "\n"
file:write(logContent)
file:write(hc)
file:close()
end
ngx.status = 200
ngx.exit(0)
|
|
|