文档章节

nginx 修改 time_local 时间格式

GavinTop
 GavinTop
发布于 2014/11/12 10:37
字数 355
阅读 309
收藏 0

因为系统统计需要,需要将默认的time_local格式 23/Aug/2010:17:26:44 +0800 修改为datetime格式,参考网上的方法,发现也有不正确。自己稍作修改:

保险起见,使用time_iso8601变量

  1. cd到源码目录:

    vi src/http/modules/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,

        

 2.    vi src/core/ngx_times.c

        找到:

        static u_char  cached_http_log_iso8601[NGX_TIME_SLOTS]  

                                [sizeof("1970-09-28T12:00:00+06:00")];

        修改为:

        static u_char  cached_http_log_iso8601[NGX_TIME_SLOTS]  

                                [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; 

        找到:

        p3 = &cached_http_log_iso8601[slot][0];  

        (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.     重新编译:

        ./configure --prefix=/usr/local/nginx  --user=web --group=web --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/opt/sourcecode/pcre-8.32 --add-module=./nginx-http-concat

        make

        不要make install

        然后停止nginx,将新编译好的nginx复制到原目录下即可

         cp /objs/nginx /usr/local/nginx/sbin/

4.    修改conf文件

        将

        log_format  main  '$remote_addr - $remote_user $time_local "$request" '  

                  '$status $body_bytes_sent "$http_referer" '  

                  '"$http_user_agent" "$http_x_forwarded_for"';  

        修改为:

        log_format  main  '$remote_addr - $remote_user $time_iso8601 "$request" '  

                  '$status $body_bytes_sent "$http_referer" '  

                  '"$http_user_agent" "$http_x_forwarded_for"';  


        /usr/local/nginx/sbin/nginx -t

        没有问题的话就可以启动了

看下log:192.168.0.143 - - [2014-11-12 10:36:26] "GET...

OK!


© 著作权归作者所有

共有 人打赏支持
GavinTop
粉丝 18
博文 63
码字总数 48967
作品 0
朝阳
高级程序员
私信 提问
使用goaccess解析nginx日志

由于我指定了安装路径为/usr/local/goaccess 因此运行主程序在该路径的bin目录下,配置文件在etc下 使用方法: 直接解析 在nginx日志目录下运行 /usr/local/goaccess/bin/goaccess -f access...

erichd
2016/08/12
350
0
【CentOS 7LNMP架构24】,nginx访问日志#180105

hellopasswd --- nginx访问日志 日志格式 vi /usr/local/nginx/conf/nginx.conf 除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 accesslog /tmp/1.log combi...

hellopasswd
01/05
7
0
nginx log记录请求响应时间

2018.10.22 阿里云对默认nginx log的分析功能详细介绍。 有时为了方便分析接口性能等,需要记录请求的时长,通过修改nginx的日志格式可以做到,如 添加一个新的log_format logformat timedc...

swingcoder
09/22
0
0
LNMP架构访问日志、日志切割、静态文件不记录及过期时间设置

11月27日任务 12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期时间 Nginx访问日志 修改nginx配置文件 格式内使用的变量说明如下: 变量名 说明 $remote_addr 客户端...

robertt15
11/27
0
0
Nginx访问日志、静态文件不记录过期时间

Nginx访问日志日志格式我们可以在主配置文件看到 $remote_addr 客户端ip(公网ip)$httpxforwarded_for 代理服务器ip$time_local 服务器本地时间$host 访问主机名(域名)$request_uri 访问的...

zenw
01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 钱不还,我就当你人不在了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享Bigleaf的单曲《小鹿》 《小鹿》- Bigleaf 手机党少年们想听歌,请使劲儿戳(这里) 周日在家做什么? 做手工呀, @poorfis...

小小编辑
12分钟前
4
1
EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
15
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
19
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
23
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部