登入到 Syslog incl。HTTP 程式碼到 Syslog 嚴重性的對映
將此片段貼上到 http {}
塊中的某個位置; 或者將它放在/etc/nginx/conf.d/
資料夾中的自己的檔案中。另請參閱登入 syslog 的官方文件 。
#
# Access Log
#
log_format fmt_syslog '[$time_local] $status $remote_addr $http_host "$request" $body_bytes_sent $request_time "$http_user_agent" $remote_user';
map $status $log_is_error { "~^5\d\d" 1; default 0; }
map $status $log_is_warn { "~^4[0-8]{2}" 1; default 0; }
map $status $log_is_info { "~^[1-3]\d\d" 1; default 0; }
access_log syslog:server=unix:/run/systemd/journal/syslog,nohostname,facility=local2,severity=error fmt_syslog if=$log_is_error;
access_log syslog:server=unix:/run/systemd/journal/syslog,nohostname,facility=local2,severity=warn fmt_syslog if=$log_is_warn;
access_log syslog:server=unix:/run/systemd/journal/syslog,nohostname,facility=local2,severity=info fmt_syslog if=$log_is_info;
#
# Error Log
#
error_log syslog:server=unix:/run/systemd/journal/syslog,nohostname,facility=local2 error;
此示例假設 rsyslog(或類似)正在偵聽 Socket /run/systemd/journal/syslog
- 因為當 journald 啟用 ForwardToSyslog 時它是 Debian 8 上的預設值。使用此套接字,你可以繞過 journald。如果該套接字不可用,請嘗試使用/dev/log
。
隨意使用其他設施而不是 local2。你也可以更改 log_format 以滿足你的需求。