Nginx修改access.log日志时间格式

admin Linux运维评论6582字数 1343阅读模式

一、修改原因

因为要获取nginx访问信息,作为开发的数据使用,但是nginxaccess.log文件中的默认的时间格式是这样的:
[02/Nov/2017:20:48:25 +0800]
而要求的格式类似如下:
[2017-11-02 20:52:06]

二、修改方法

方法都几种,但是修改源码的方法看上去麻烦,做起来也简单,我这边修改了源码(把原来的删了,复制新的),重新编译
1.修改src/http/modules/ngx_http_log_module.c  

  1. { ngx_string("time_local"), sizeof("28/Sep/1970:12:00:00 +0600") - 1,  
  2.                           ngx_http_log_time },  
  3. 修改后:  
  4. { ngx_string("time_local"), sizeof("1970-09-28 12:00:00 +0600") - 1,  
  5.                           ngx_http_log_time },  
  6.    
  7.    
  8.   return ngx_cpymem(buf, ngx_cached_http_log_time.data,  
  9.                       ngx_cached_http_log_time.len);  
  10. 修改后:  
  11.   return ngx_cpymem(buf, ngx_cached_err_log_time.data,  
  12.                       ngx_cached_err_log_time.len);  

2、修改 src/core/ngx_times.c 140行

  1. (void) ngx_sprintf(p1, "%4d/%02d/%02d %02d:%02d:%02d",  
  2.                        tm.ngx_tm_year, tm.ngx_tm_mon,  
  3.                        tm.ngx_tm_mday, tm.ngx_tm_hour,  
  4.                        tm.ngx_tm_min, tm.ngx_tm_sec);  
  5.    
  6. 修改后  
  7.     (void) ngx_sprintf(p1, "%4d-%02d-%02d %02d:%02d:%02d",  
  8.                        tm.ngx_tm_year, tm.ngx_tm_mon,  
  9.                        tm.ngx_tm_mday, tm.ngx_tm_hour,  
  10.                        tm.ngx_tm_min, tm.ngx_tm_sec);  

3.备份一下配置文件(小心一些好)
4.重新编译,参数还是用原来的吧

  1. ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  

5. make && make install 之后重启nginx就行了

版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
admin
  • 本文由 发表于 2020年10月15日 19:29:08
  • 转载请务必保留本文链接:https://www.58pxe.com/6660.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: