nginx访问日志中的时间格式修改

1.说明

默认的时间格式是:[08/Mar/2013:09:30:58 +0800],由$time_local变量表示。

我想要改成如下格式:2013-03-08 12:21:03

 

2.需要修改的文件

src/core/nginx_times.c

src/http/modules/ngx_http_log_module.c

 

首先修改ngx_http_log_module.c文件:

{ ngx_string("time_iso8601"), sizeof("1970-09-28T12:00:00+06:00") - 1,
更改后
{ ngx_string("time_iso8601"), sizeof("1970-09-28 12:00:00") - 1, 

 

然后修改nginx_times.c文件:

[sizeof("1970-09-28T12:00:00+06:00")];
更改后
[sizeof("1970-09-28 12:00:00")]; 
ngx_cached_http_log_iso8601.len = sizeof("1970-09-28T12:00:00+06:00") - 1;
更改为
ngx_cached_http_log_iso8601.len = sizeof("1970-09-28 12:00:00") - 1;
(void) ngx_sprintf(p3, "%4d-%02d-%02dT%02d:%02d:%02d%c%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,  
                    tp->gmtoff < 0 ? '-' : '+',  
                    ngx_abs(tp->gmtoff / 60), ngx_abs(tp->gmtoff % 60)); 
更改为
(void) ngx_sprintf(p3, "%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.重新编译,并使用新的时间变量

配置文件中的$time_local改为$time_iso8601即可。

 

posted @ 2017-05-17 17:40  道霖  阅读(6036)  评论(0编辑  收藏  举报