リクエストごとに JSON 文字列をアクセス ログに書き込みたいので、後で使用しやすくなります。
Lapis/Openresty によって公開された print() を使用していますが、タイムスタンプ、ログ レベル、および nginx ログ形式の一部であるその他の情報をオーバーライドしたいと考えています。
どうすれば上書きできますか?
リクエストごとに JSON 文字列をアクセス ログに書き込みたいので、後で使用しやすくなります。
Lapis/Openresty によって公開された print() を使用していますが、タイムスタンプ、ログ レベル、および nginx ログ形式の一部であるその他の情報をオーバーライドしたいと考えています。
どうすれば上書きできますか?
アクセス ログを 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
消費者に提供できます。