簡體   English   中英

如何使用YAML配置Python日志記錄以登錄UTC?

[英]How to configure Python Logging with YAML to log in UTC?

我知道我可以設置logging.Formatter().converter = time.gmtime 但是我如何在YAML和logging.config.dictConfig執行此操作?

這是我做的:

version: 1
formatters:
  simple:
    format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
    converter: ext://time.gmtime
handlers:
  console:
    class: logging.StreamHandler
    level: DEBUG
    formatter: simple
    stream: ext://sys.stdout
loggers:
  my_app:
    level: DEBUG
    handlers: [console]

但它仍然記錄在當地時間。

logging.config模塊支持密鑰formatdatefmtclass ; 您的converter密鑰完全被忽略。

class鍵確實允許您指定自定義格式化程序,因此您最好的選擇是子類logging.Formatter()並讓該子類設置轉換器:

from logging import Formatter
import time

class GMTFormatter(Formatter):
    converter = time.gmtime

然后在你的YAML中引用那個類:

formatters:
  simple:
    format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
    class: ext://your.module.GMTFormatter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM