nginx日志

Posted qinsilandiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx日志相关的知识,希望对你有一定的参考价值。

http段中定义格式

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' 
                  '$status $body_bytes_sent "$http_referer" ' 
                '"$http_user_agent" "$http_x_forwarded_for"'; 
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
#对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是off),格式如下:
#参数注释如下:
#max:设置缓存中的最大文件描述符数量,如果缓存被占满,采用LRU算法将描述符关闭。
#inactive:设置存活时间,默认是10s
#min_uses:设置在inactive时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次
#valid:设置检查频率,默认60s
#off:禁用缓存

在日志格式样式中:
$remote_addr和$http_x_forwarded_for用于记录IP地址
$remote_user用于记录远程客户端用户名称;
$time_local用于记录访问时间与时区;
$request用于记录请求URL与HTTP协议;
$status用于记录请求状态,例如成功时状态为200,页面找不到时状态为404;
$body_bytes_sent用于记录发送给客户端的文件主体内容大小;
$http_referer用于记录是从哪个页面链接访问过来的;
$http_user_agent用于记录客户端浏览器的相关信息。

server段中使用

#声明log      log位置                log格式;
access_log    logs/access_8080.log      main;   

每天定时切割 nginx 日志的脚本

创建脚本/usr/local/nginx/sbin/cut_nginx_log.sh

vi /usr/local/nginx/sbin/cut_nginx_log.sh

#!/bin/bash 
# This script run at 00:00 
# The Nginx logs path 
logs_path="/usr/local/nginx/logs/" 
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/ 
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log 
kill -USR1 `cat /usr/local/nginx/nginx.pid` 

设置 crontab,每天凌晨 00:00 切割 nginx 访问日志

crontab -e 
00 00 * * * /bin/bash  /usr/local/nginx/sbin/cut_nginx_log.sh 

以上是关于nginx日志的主要内容,如果未能解决你的问题,请参考以下文章

argparse 代码片段只打印部分日志

常用python日期日志获取内容循环的代码片段

Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

使用命令如何动态查看nginx.log日志文件的内容?

webstorm代码片段的创建