2

リクエストごとに JSON 文字列をアクセス ログに書き込みたいので、後で使用しやすくなります。

Lapis/Openresty によって公開された print() を使用していますが、タイムスタンプ、ログ レベル、および nginx ログ形式の一部であるその他の情報をオーバーライドしたいと考えています。

どうすれば上書きできますか?

4

1 に答える 1

5

アクセス ログを json で埋めるには、nginx.conf で次のようなものを使用できます。

log_format mydef "$json_log";
access_log logs/access.log mydef;
server {
    ...
    set $json_log '';
    log_by_lua_block {
        local json = require "cjson"
        ngx.var.json_log = json.encode({my_json_data = 1})
    }
}

nginx エラー ログのデフォルトのプレフィックスを削除したい場合、フォーマットは nginx のソース内でハードコードされているため、まだ不可能です。

ただし、コンテキスト中にカスタマイズされた形式でデータをlog_by_lua消費者に提供できます。

于 2016-10-31T06:50:09.353 に答える