【问题标题】:Django+Gunicorn incorrect logs timestampDjango+Gunicorn 不正确的日志时间戳
【发布时间】:2017-08-08 10:40:46
【问题描述】:

在我的 Django 设置和我的机器上,我配置了 utc+3 时间,因此期望以 utc+3 格式获取所有日志,但事实证明,它们实际上非常混乱:

[2017-08-08 10:29:22 +0000] [1] [INFO] Starting gunicorn 19.7.1
[2017-08-08 10:29:22 +0000] [1] [DEBUG] Arbiter booted
[2017-08-08 10:29:22 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000
[2017-08-08 10:29:22 +0000] [1] [INFO] Using worker: sync
[2017-08-08 10:29:22 +0000] [7] [INFO] Booting worker with pid: 7
[2017-08-08 10:29:23 +0000] [1] [DEBUG] 1 worker
[2017-08-08 13:29:26 +0300] [7] [INFO] [dashboard.views:9] Displaying menu

设置:

TIME_ZONE = 'Europe/Moscow'
USE_TZ = True

也许您可以提供一些提示/信息如何配置或调试它?

有一刻我以为这是一个 gunicorn 的问题,但它使用 Django 设置所以我不知道出了什么问题:/

【问题讨论】:

    标签: django logging timezone timestamp utc


    【解决方案1】:

    Gunicorn 日志记录时间不会在 Django 时区中中继,而是在本地机器之一中中继,因此要获得正确的时区,您应该配置本地机器,具体操作方式取决于其上运行的操作系统。

    对于 Debian/Ubuntu:

    1. sudo dpkg-reconfigure tzdata
    2. 按照航站楼的指示进行操作。
    3. 时区信息保存在 /etc/timezone - 可以在下面编辑或使用

    如果您使用的是 CentOS,您可以在this article 中查看。

    有关其他选项,请在 Google 中查看。

    希望对你有帮助。

    【讨论】:

    • 机器时区也是 utc+3... $sudo systemsetup -gettimezone: $Time Zone: Europe/Moscow
    【解决方案2】:

    所以,时间戳是正确的,但由于我公司的代理设置不同。事实证明,处理不同时区的最佳方法是在除向用户展示之外的所有地方使用 utc。

    【讨论】:

      猜你喜欢
      • 2020-08-18
      • 2019-02-11
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 2017-11-19
      • 2012-01-25
      • 1970-01-01
      相关资源
      最近更新 更多