当前位置: > Linux服务器 > nginx >

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

时间:2014-06-19 02:30来源:linux.it.net.cn 作者:IT网
要求:
修改访问日志的时间格式,原格式为:03/Jun/2009:07:06:53 +0800 ,修改为:2009-06-03 07:06:53

第一个要修改的文件:
nginx-0.7.59/src/core/ngx_times.c

1、(计算字符串的长度?)
static u_char            cached_http_log_time[NGX_TIME_SLOTS]
                                    [sizeof("28/Sep/1970:12:00:00 +0600")];
修改为
static u_char            cached_http_log_time[NGX_TIME_SLOTS]
                                    [sizeof("1970-09-28 12:00:00")];
2、(计算字符串的长度?)
ngx_cached_http_log_time.len = sizeof("28/Sep/1970:12:00:00 +0600") - 1;
修改为
ngx_cached_http_log_time.len = sizeof("1970-09-28 12:00:00") - 1;

3、(关键的地方,修改格式)
    p2 = &cached_http_log_time[slot][0];

    (void) ngx_sprintf(p2, "%02d/%s/%d:%02d:%02d:%02d %c%02d%02d",
                       tm.ngx_tm_mday, months[tm.ngx_tm_mon - 1],
                       tm.ngx_tm_year, tm.ngx_tm_hour,
                       tm.ngx_tm_min, tm.ngx_tm_sec,
修改为
p2 = &cached_http_log_time[slot][0];

    (void) ngx_sprintf(p2, "%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,
注:这里其实将p2格式改成和p1格式基本上相同了,完全可以直接将log_time的格式改成p1,但是为了做个试验,还是手动修改了p2格式。

第二个要修改的文件:
nginx-0.7.59/src/http/modules/ngx_http_log_module.c

    { ngx_string("time_local"), sizeof("28/Sep/1970:12:00:00 +0600") - 1,
修改为
    { ngx_string("time_local"), sizeof("1970-09-28 12:00:00") - 1,

接下来,就是编译源文件,安装了。

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容