首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

透过修改源码来更改nginx的日期格式

2013-03-12 
通过修改源码来更改nginx的日期格式前言群里有朋友想切换nginx 0.7的版本到1.2的版本,在0.7的版本中他们改

通过修改源码来更改nginx的日期格式
前言    群里有朋友想切换nginx 0.7的版本到1.2+的版本,在0.7的版本中他们改了源码,使得访问日志输出的时间格式从[08/Mar/2013:09:30:58 +0800]变成了2013-03-08 12:21:03。说是在修改1.2+版本的时候格式就变乱了,格式一直不对,刚好有人@我,我说就帮忙看下。须知    nginx log日志格式的话,无非是在src/core/nginx_times.c和src/http/modules/ngx_http_log_module.c 这两个文件中做修改。    nginx.conf 的默认日志格式中的时间格式使用$time_local去指定的,这是刷到acces.log中的时间格式是[08/Mar/2013:09:30:58 +0800]日期格式更改    一.去下了个目前最新稳定版 nginx-1.2.7 ,打开nginx_http_log_module.c 查找到time_local,可以看到

   (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);

    ok,重新编译,启动,curl "localhost",查看acees.log 就可以看到
    127.0.0.1 - - 2013-03-08 12:21:03 "GET / HTTP/1.1" 200 612 
总结    一般很少去改动nginx源码,基本做开发也只是做nginx的http模块,这也是难得一次经验,还比较顺利。


热点排行