如何在loguru中设置时区?

问题描述 投票:0回答:1

如何将时区塔什干 (UTC+5) 设置为此代码

from loguru import logger as lg

def setup_logger():
    format = (
        "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
        "<level>{level: <8}</level> | "
        "<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> | "
        "<level>{message}</level>"
    )
    lg.add("logs/debug.log", format=format,
           level="DEBUG", rotation="1 week", compression="zip")

我查遍了整个互联网,但找不到。 请帮忙!

我尝试了钟摆、日期时间和其他东西。我认为 loguru 中的“记录”将是真实的,但我不能。

python logging time timezone loguru
1个回答
0
投票

如果您运行在 Linux、macOS 或其他直接支持 IANA 时区的操作系统(即不是 Windows)上,您应该能够在应用程序启动之前设置

TZ
环境变量。

export TZ=Asia/Tashkent
python app.py

或者,您可以在应用程序中执行此操作,如下所示:

import os, time
os.environ['TZ'] = 'Asia/Tashkent'
time.tzset()

或者,您可以采用此 github 问题中的方法来更新 loguru 中使用的记录:

def set_datetime(record):
    dt = datetime.datetime.now(ZoneInfo("Asia/Tashkent"))
    record["extra"]["datetime"] = dt

logger.configure(patcher=set_datetime)
logger.add(sys.stderr, format="{extra[datetime]} {message}")

这需要Python 3.9+使用

ZoneInfo
来获取特定时区的当前时间。如果需要,您可以在旧版 Python 中使用 pendulum、arrow 或 pytz。

© www.soinside.com 2019 - 2024. All rights reserved.