文章目錄
1.日誌配置
1.1.
log_format
1.2.
access_log 2.
日誌切割
2.1.
配置shell指令碼
2.2.
crontab中設定定時作業
nginx中訪問日誌相關指令主要有兩條,一條是log_format,用來設定日誌的格式,另外一條是access_log,用來指定日誌文職的存放路徑、格式和快取大小。兩條指令在nginx配置檔案中的位置可以在http之間。
log_format用來設定日誌格式,格式如下所示
log_format name在nginx中有自己預設的日誌格式,如下內容:(名稱)
format
(格式)
這段內容什麼意思呢?我們來理解下。
$remote_user:用於記錄遠端客戶端的使用者名稱(一般為「-」)
$time_local:用於記錄訪問時間和時區
$request:用於記錄請求的url以及請求方法
$status:響應狀態碼
$body_bytes_sent:給客戶端傳送的檔案主體內容大小
$http_user_agent:使用者所使用的**(一般為瀏覽器)
現在,我們新增乙個我們自定義日誌資訊。例如,如果我們用nginx作為反向**服務,就不能獲取客戶端的真實ip位址ip了,因為經過反向**後,在客戶端和web伺服器之間增加了中間層,因此web伺服器無法直接拿到客戶端的ip。
log_format mylog日誌格式允許包含的變數注釋,如下所示'$remote_addr [$time_local] "$request" $status'
;
記錄客戶端
ip位址
$remote_user
記錄客戶端使用者名稱
$request
記錄請求的
url和
協議$status
記錄請求狀態
$body_bytes_sent
傳送給客戶端的位元組數,不包括響應頭的大小;
該變數與
apache
模組mod_log_config
裡的「%
b」引數相容。
$bytes_sent
傳送給客戶端的總位元組數。
$connection
連線的序列號。
$connection_requests
當前通過乙個連線獲得的請求數量。
$msec
日誌寫入時間。單位為秒,精度是毫秒。
$pipe
如果請求是通過
流水線(
pipelined
)傳送,
pipe
值為「p
」,否則為「.」。
記錄從哪個頁面鏈結訪問過來的
記錄客戶端瀏覽器相關資訊
$request_length
請求的長度(包括請求行,請求頭和請求正文)。
$request_time
請求處理時間,單位為秒,精度毫秒;
從讀入客戶端的第乙個位元組開始,直到把最後乙個字元傳送給客戶端後進行日誌寫入為止。
$time_iso8601 iso8601
標準格式下的本地時間。
$time_local
通用日誌格式下的本地時間。
用log_format指令設定了日誌格式之後,需要用access_log指令指定日誌檔案存放路徑。
格式如下所示
access_log path在nginx中有自己預設的日誌路徑,如下內容:(存放路徑)
[format
(自定義日誌格式名稱)
[buffer
=size
|off
]]
#access_log logs/access.log main;如果想關閉日誌,可以如下:
access_log off值得注意的是,nginx程序設定的使用者和組必須對日誌路徑有建立檔案的許可權,否則,會報錯。;
此外,對於每一條日誌記錄,都將是先開啟檔案,再寫入日誌,然後關閉。可以使用open_log_file_cache來設定日誌檔案快取(預設是off)。
為了方便對日誌進行分析計算,需要對日誌進行定時切割。定時切割的方式有按照月切割、按天切割,按小時切割等。最常用的是按天切割。
#!/bin/bash進行編輯# 設定日誌檔案存放目錄
logs_path
="/var/logs/nginx/"
# 設定pid檔案
pid_path
="/usr/local/dev/nginx/nginx.pid"
# 重新命名日誌檔案
mv $
access
.log $
access_$
(date -d
"yesterday"
+"%y%m%d"
).log
# 向nginx主程序發訊號重新開啟日誌
kill
-usr1
`cat $`
crontab -e配置內容如下
00*這樣在每天的夜晚12點就會自動建立備份檔案了。.**bash
/usr
/local
/dev
/nginx
/nginx_log.sh
(完)
本文由
梁桂釗發表於
梁桂釗的部落格
Nginx實戰(三) 日誌配置與切割
訪問日誌主要記錄客戶端訪問nginx的每乙個請求,格式可以自定義。通過訪問日誌,你可以得到使用者地域 跳轉 使用終端 某個url訪問量等相關資訊。nginx中訪問日誌相關指令主要有兩條,一條是log format,用來設定日誌的格式,另外一條是access log,用來指定日誌文職的存放路徑 格式和...
Nginx初學(三)日誌的配置
1 進入到nginx的日誌目錄,我們可以看到下圖的三個檔案 其中nginx.pid中存放的是程序號,access.log是訪問日誌,error是錯誤日誌。2 我們開啟配置檔案,可以設定自己的日誌檔案。如下,配置好後儲存,重啟nginx。server access log logs wuaipic.l...
SpringBoot 三 日誌檔案
總結 1 springboot底層使用slf4 logback的方式進行日誌記錄 2 springboot將其他的日誌檔案都替換成slf4.3 中間包替換?4 如果我們要引入其他框架?一定要把這個框架的預設配置移除掉 要不包名類名一直則衝突 如下圖 springboot日誌檔案配置預設是info級別...