nginx按日期每天生成一個日志文件或每個小時生成一個日志文件


 

按日期:

一:

if ($time_iso8601 ~ "(\d{4}-\d{2}-\d{2})") {
set $day $1;
}

access_log logs/host.access_$day.log combined;

結果:host.access_2020-08-27.log

-------------------------------------------------------------------------

二:
if ($time_iso8601 ~ "(\d{4})-(\d{2})-(\d{2})") {
set $time $1$2$3;
}
access_log logs/host.access_$time .log combined;

結果:host.access_20200826.log

兩種寫法其實是一樣的,第一種把日期做成一個參數,第二個是把日期做成三個參數(一個括號一個參數)

combined是按默認日志格式

還可以按指定日志格式:

log_format time_log_format '$remote_addr - $remote_user [$time_local] "$request" - $request_time - $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" - [$upstream_response_time]';

access_log logs/host.access_$time .log time_log_format;

 

按小時生成:

if ($time_iso8601 ~ "(\d{4}-\d{2}-\d{2}T\d{2})") {
set $day $1;
}

access_log  logs/host.access_$day.log  combined;

結果:host.access_2020-08-27T00.log

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM