登入到 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 以滿足你的需求。