要求: 修改访问日志的时间格式,原格式为: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) |