在 Nginx 中,你可以通過修改配置文件來自定義日志輸出格式。以下是如何自定義日志輸出的步驟:
打開 Nginx 配置文件。通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/your_domain.conf。
在 http、server 或 location 塊中,使用 log_format 指令定義一個新的日志格式。例如,創建一個名為 my_custom_format 的自定義日志格式:
http {
...
log_format my_custom_format '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_x_forwarded_for" "$request_time"';
...
}
在這個例子中,我們定義了一個包含以下字段的自定義日志格式:
$remote_addr:客戶端 IP 地址$remote_user:遠程用戶(如果已通過身份驗證)$time_local:本地時間$request:請求行(包括請求方法、URI 和 HTTP 版本)$status:響應狀態碼$body_bytes_sent:發送給客戶端的響應體字節數$http_referer:引用頁面的 URL$http_user_agent:客戶端用戶代理信息$http_x_forwarded_for:X-Forwarded-For 請求頭(如果存在)$request_time:處理請求所花費的時間你可以根據需要添加或刪除字段。
server 或 location 塊中,使用 access_log 指令指定要使用的自定義日志格式。例如,將自定義日志格式應用于名為 my_domain.com 的站點:http {
...
server {
listen 80;
server_name my_domain.com;
access_log /var/log/nginx/my_domain.com.access.log my_custom_format;
...
}
}
在這個例子中,我們將自定義日志格式 my_custom_format 應用于名為 my_domain.com 的站點的訪問日志,并將其存儲在 /var/log/nginx/my_domain.com.access.log 文件中。
sudo nginx -t # 檢查配置文件語法是否正確
sudo nginx -s reload # 重新加載配置文件
現在,Nginx 將使用你定義的自定義日志格式輸出日志。