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就行了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM