资讯

展开

自定义nginx日志内容

作者:快盘下载 人气:

nginx日志相关的配置 包括 access_log 、 log_format 、 open_log_file_cache 、 rewrite_log 、 error_log。我们经常用到的无法是 access_log 、 error_log、log_format这三个。log_format就是用来自定义nginx日志内容的。系统默认是combined。如果没有明确指定日志格式默认格式:


log_format combined '$remote_addr - $remote_user [$time_local] ' 
             '"$request" $status $body_bytes_sent '                    
             '"$http_referer" "$http_user_agent"';


如果不想使用Nginx预定义的格式,可以通过 log_format指令来自定义。但是这个指令的作用域我是参考官方配置,写在了http中。直接写在bt的配置文件中报错。只能写这里了。


自定义nginx日志内容


log_format 指令中常用的一些变量:


nginx的日志分割


[root@kkpan.com ~]# rpm -ql nginx |grep log
/etc/logrotate.d/nginx 
/var/log/nginx
[root@kkpan.com ~]# vim /etc/logrotate.d/nginx 
/var/log/nginx/*.log {           #指定需要轮转处理的日志文件        
                  daily     #日志文件轮转周期,可用值为: daily/weekly/yearly        
                  missingok               # 忽略错误信息        
                  rotate 7               # 轮转次数,即多存储7个归档日志,会删除久的归档日志       
                  minsize 5M         #限制条件,大于5M的日志文件才进行分割,否则不操作        
                  dateext             # 以当前日期作为命名格式        
                  compress         # 轮循结束后,已归档日志使用gzip进行压缩        
                  delaycompress    # 与compress共用,近的一次归档不要压缩        
                  notifempty         # 日志文件为空,轮循不会继续执行        
                  create 640 nginx nginx     #新日志文件的权限        
                  sharedscripts     #有多个日志需要轮询时,只执行一次脚本        
                  postrotate    # 将日志文件转储后执行的命令。以endscript结尾,命令需要单独成行               
                               if [ -f /var/run/nginx.pid ]; then    #判断nginx的PID。# 默认logrotate会以 root身份运行                       
                                              kill -USR1 cat /var/run/nginx.pid               
                               fi        
                  endscript
 }


执行nginx的日志分割命令:

[root@kkpan.com nginx]# /usr/sbin/logrotate -f /etc/logrotate.conf 
创建计划任务: 
[root@kkpan.com nginx]# crontab -e 59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.conf


加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!