请考虑访问日志具有以下格式:
log_format详细信息'$ remote_addr $ remote_user [$ time_local]“ $ request”' '$ status $ body_bytes_sent“ $ http_referer”' '“ $ http_user_agent”“ $ http_x_forwarded_for”' '$ request_length $ request_time $ upstream_connect_time $ upstream_header_time $ upstream_response_time';
我如何拥有一个仅包含耗时超过5秒的请求的新日志文件?
答案 0 :(得分:0)
您可以将日志发送到http-log并对其进行处理,以找出是否超出您期望的时间。
基于某些条件停止日志的实现似乎并不复杂。但是一旦生成日志,从日志中提取所需信息似乎是正确的方法。
答案 1 :(得分:0)
您可以使用if
指令上的内置access_log
政治家来做到这一点,就像这样:
http{
...
map $upstream_response_time $under {
~^[01234]\.[0-9]+ 1;
default 0;
}
server {
set $over 1;
if ( $under = 1 ) { set $over 0; }
access_log /some/folder/under.log combined if=$under;
access_log /some/folder/over.log combined if=$over;
...
}
...
}