log_format 語法
log_format formatname formatparams
log_format 語法描述log_format 宣告乙個日誌格式
formatname 格式化名稱, 相當於函式名
formatparams 引數列表, 相當於函式體
log_format 引數列表$msec 日誌寫入時間
$remote_addr 客戶端ip
$remote_user 客戶端使用者名稱
$http_user_agent 客戶端瀏覽器資訊
$http_x_forwarded_for 客戶端ip(反向**)
$time_local 請求時區
$time_iso8601 iso8601格式時間
$request_time 請求時間
$connection 連線的序列號
$connection_requests 連線的請求數
$request 請求的url和http協議
$request_body 請求引數
$request_length 請求體長度
$status 請求的狀態碼
$http_referer 請求的源位址
$body_bytes_sent 返回體位元組數(不包括相應頭)
$bytes_sent 返回體總位元組數
access_log 語法access_log
logpath
[formatname]
access_log 語法描述access_log 輸出格式化的日誌到日誌檔案
logpath 日誌檔案路徑
formatname 格式化名稱
編輯指令碼tianshl@tianshl nginx $ vim nginx_log_division.sh
指令碼內容#! /bin/sh
# 昨天日期
yesterday=`date -v -1d +%y%m%d`
# 日誌目錄
log_path="/usr/local/var/log/nginx/"
# sdk日誌路徑
sdk_path=$sdk
# 以天為單位切分日誌
mv -f
$.log $_$.log
# 重新生成日誌檔案
pid_path="/usr/local/var/run/nginx.pid"
sudo kill -usr1 `cat $`
定時任務
切換到root身份
tianshl@tianshl nginx $ sudo su root
編輯 crontabsh-3.2
# crontab -e
crontab 新增一行00*
** sh /usr/local/var/log/nginx/nginx_log_division.sh
檢視是否新增成功sh-3.2
# crontab -l
server 段增加以下**if ($time_iso8601 ~ "(\d)-(\d)-(\d)")
日誌檔案路徑中增加日期引數access_log /var/log/nginx/api-$time.log;
舉個栗子events
}}
栗子描述1. 訪問/sdk時會生成當天時間的日誌檔案,當檔案存在時則追加內容,檔案不存在時自動建立。
2. 同理可以按年、月、日、小時、分鐘、秒等進行切割。
編輯配置檔案, 例如 nginx.conftianshl@tianshl ~ $ vim /usr/local/etc/nginx/nginx.conf
配置內容events
}}
重啟 nginxtianshl@tianshl ~ $ sudo nginx
nginx 啟動成功後自動生成四個日誌檔案tianshl@tianshl ~ $ cd /usr/local/var/log/nginx
tianshl@tianshl nginx $ ls
access.log api.log
error.log sdk.log
檢視日誌tianshl@tianshl nginx $ tail -f *.log
==> access.log <==
==> api.log <==
==> error.log <==
==> sdk.log <==
發起sdk請求並檢視日誌==> sdk.log <==
127.0.0.1 - 502
測試結果測試通過
Nginx 配置優化 日誌分割
生產環境中的伺服器,由於訪問日誌增長素的非常快,日誌太大會嚴重影響伺服器的效率,同時,為了方便對日誌進行分析計算,必須對日誌檔案進行定時切割,定時切割的方式有 按月切割 按天切割 按小時切割等等。當然了最常用的還是 按天切割。root localhost logs pwd usr local ngi...
nginx日誌分割
以下這個指令碼實施的核心是 每天凌晨將日誌檔案壓縮並移動到相應的年份月份目錄下,然後重新生成日誌檔案,同時記錄日誌 bin bash logs path home wwwlog 日誌存放位置 year date y 年份 month date m 月份 day date y m d 日期 time ...
Nginx 日誌分割
usr bin bash 日誌檔案存放目錄 logs path var log nginx nginx程序pid nginx pid cat var run nginx.pid 日誌名稱 logs name date d yesterday y m d 改名 mv logs path access....