如何在NGINX中更改LUA的日志消息格式?

zdwk9cvp  于 2023-04-29  发布在  Nginx
关注(0)|答案(2)|浏览(139)

现在我用

ngx.log(ngx.ALERT , "This is my message");

在LUA中记录消息的方法。它给出了一个非常描述性的消息,如下所示。那么,我如何在NGINX中更改日志格式以仅输出警报消息呢?

2017/03/19 12:32:10 [alert] 21994#0: *9 [lua] content_by_lua(proj1.conf:159):3: **This is my message**, client: 127.0.0.1, server: , request: "GET /service/user_info?access_token=323d106b-b170-4e91-9296-ef1a38b5af19 HTTP/1.1", host: "127.0.0.1:4000"

编辑

我在nginx的http块中使用了这个指令

error_log stderr info;
a0x5cqrl

a0x5cqrl1#

你可以做io.stderr:write("This is my message")

1szpjjfi

1szpjjfi2#

error_log中的常量前缀和后缀总是让我感到厌烦。
作为最后一个解决方法,我打开文件并写入它。
//在nginx http上下文中

lua_shared_dict file_dict 1m;

//在lua中

local file = ngx.shared.file_dict:get("log_file")
            if not file then
                file = io.open("/tmp/custom.log", "a")
                ngx.shared.file_dict:set("log_file", file)
                ngx.log(ngx.WARN, "--- open file")
            end

            file:write(string.format("str %s num %d\\n", "abc", 456))
            file:flush()

相关问题