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就行了