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

一、修改原因
  因为要获取nginx访问信息,作为开发的数据使用,但是nginx的access.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,
                          ngx_http_log_time },
修改后:
{ ngx_string("time_local"), sizeof("1970-09-28 12:00:00 +0600") - 1,
                          ngx_http_log_time },
 
 
  return ngx_cpymem(buf, ngx_cached_http_log_time.data,
                      ngx_cached_http_log_time.len);
修改后:
  return ngx_cpymem(buf, ngx_cached_err_log_time.data,
                      ngx_cached_err_log_time.len);

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

(void) ngx_sprintf(p1, "%4d/%02d/%02d %02d:%02d:%02d",
                      tm.ngx_tm_year, tm.ngx_tm_mon,
                      tm.ngx_tm_mday, tm.ngx_tm_hour,
                      tm.ngx_tm_min, tm.ngx_tm_sec);
 
修改后
    (void) ngx_sprintf(p1, "%4d-%02d-%02d %02d:%02d:%02d",
                      tm.ngx_tm_year, tm.ngx_tm_mon,
                      tm.ngx_tm_mday, tm.ngx_tm_hour,
                      tm.ngx_tm_min, tm.ngx_tm_sec);

  3.备份一下配置文件(小心一些好)

  4.重新编译,参数还是用原来的吧

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

下面关于Nginx的文章您也可能喜欢,不妨参考下:

Nginx 403 forbidden的解决办法 

CentOS 7下Nginx服务器的安装配置 

CentOS上安装Nginx服务器实现虚拟主机和域名重定向 

CentOS 6.8 安装LNMP环境(Linux+Nginx+MySQL+PHP) 

Linux下安装PHP环境并配置Nginx支持php-fpm模块 

Nginx服务的SSL认证和htpasswd认证 

Ubuntu 16.04上启用加密安全的Nginx Web服务器 

Linux中安装配置Nginx及参数详解 

Nginx日志过滤 使用ngx_log_if不记录特定日志

CentOS 7.2下Nginx+PHP+MySQL+Memcache缓存服务器安装配置 

CentOS6.9编译安装Nginx1.4.7 

Nginx 的详细介绍请点这里
Nginx 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/49dd003eb8aee00c092ed3919e7c98fe.html