zoukankan      html  css  js  c++  java
  • Nginx修改access.log日志时间格式

    一、修改原因

      因为要获取nginx访问信息,作为开发的数据使用,但是nginx的access.log文件中的默认的时间格式是这样的:

      [02/Nov/2017:20:48:25 +0800]

      而要求的格式类似如下:

      [2017-11-02 20:52:06]

    二、修改方法

      方法都几种,但是修改源码的方法看上去麻烦,做起来也简单,我这边修改了源码(把原来的删了,复制新的),重新编译

      1.修改src/http/modules/ngx_http_log_module.c  

    1) { ngx_string("time_local"), sizeof("28/Sep/1970:12:00:00 +0600") - 1,
                              ngx_http_log_time },
    修改后:
    { ngx_string("time_local"), sizeof("1970-09-28 12:00:00 +0600") - 1,
                              ngx_http_log_time },
    
    
      return ngx_cpymem(buf, ngx_cached_http_log_time.data,
                          ngx_cached_http_log_time.len);
    修改后:
      return ngx_cpymem(buf, ngx_cached_err_log_time.data,
                          ngx_cached_err_log_time.len);
    

      2、修改 src/core/ngx_times.c 140行

     (void) ngx_sprintf(p1, "%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);
    
    修改后
        (void) ngx_sprintf(p1, "%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.备份一下配置文件(小心一些好)

      4.重新编译,参数还是用原来的吧

           5. make && make install 之后重启nginx就行了

  • 相关阅读:
    网络杂项
    虚拟化
    虚拟化
    ssh
    开机启动命令/服务
    选择表达式
    查询一个表中的重复数据
    oracle逗号分隔函数
    只能为浮点数或整数的正则表达式
    后台模拟弹出上传匡
  • 原文地址:https://www.cnblogs.com/bigberg/p/7774508.html
Copyright © 2011-2022 走看看