代码之家  ›  专栏  ›  技术社区  ›  Sean256

我如何才能让我们的nginx access\u日志不在时区偏移中放置:呢?

  •  0
  • Sean256  · 技术社区  · 7 年前

    nginx以以下格式输出正确的ISO860标准:

    2017-09-29T15:39:06+00:00
    

    这很好,除了AWS CloudWatch仅在:不在时区偏移时工作。这样地:

    2017-09-29T15:39:06+0000
    

    我们需要输出CloudWatch可以解释的时间格式。CloudWatch是“坏的”,因为它使用python 2.7中的时间函数。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Tarun Lalwani    7 年前

    没有直接的方法。但可以自定义日志格式并更改变量。所以我们可以用它来锻炼

    events {
        worker_connections  1024;
    }
    http {
    
    map $time_iso8601 $time_aws {
       ~(.*):(00)  "$1$2";
    }
    
    log_format new_format '$remote_addr - $remote_user [$time_aws] '
                        '"$request" $status $body_bytes_sent '
                        '"$http_referer" "$http_user_agent"';
    access_log /dev/stdout  new_format;
    server {
       listen 80;
       location / {
          return 200 "test";
       }
    }
    
    }
    

    这给我下面的访问日志

    172.19.0.1 - - [2017-09-29T16:43:55+0000] "GET /tarun HTTP/1.1" 200 51 "-" "curl/7.47.0"