动态

详情 返回 返回

uvicorn 配置日誌格式(qbit) - 动态 详情

前言

  • 技術棧
Python  3.11.8
fastapi 0.115.12
uvicorn 0.34.2
loguru  0.7.3 
  • uvicorn 默認日誌沒有時間戳,看起來不方便,主動配置日誌格式,使得 uvicorn 打印的日誌格式和 loguru 的默認格式一致
uvicorn main:app --host 0.0.0.0 --port 8888 --log-config uvicorn_log_config.json

uvicorn 日誌配置文件內容

  • uvicorn_log_config.json
{
    "version": 1,
    "disable_existing_loggers": false,
    "formatters": {
        "default": {
            "()": "uvicorn.logging.DefaultFormatter",
            "fmt": "%(asctime)s.%(msecs)03d | %(levelname)s     | %(message)s",
            "datefmt": "%Y-%m-%d %H:%M:%S"
        },
        "w3c": {
            "()": "uvicorn.logging.AccessFormatter",
            "fmt": "%(asctime)s.%(msecs)03d | %(levelname)s     | %(client_addr)s - %(request_line)s - %(status_code)s",
            "datefmt": "%Y-%m-%d %H:%M:%S"
        }
    },
    "handlers": {
        "default": {
            "formatter": "default",
            "class": "logging.StreamHandler",
            "stream": "ext://sys.stderr"
        },
        "w3c": {
            "formatter": "w3c",
            "class": "logging.StreamHandler",
            "stream": "ext://sys.stdout"
        }
    },
    "loggers": {
        "uvicorn": {"handlers": ["default"], "level": "INFO"},
        "uvicorn.error": {"level": "ERROR"},
        "uvicorn.access": {"handlers": ["w3c"], "level": "INFO", "propagate": false}
    }
}

參考文獻

  • uvicorn 配置文件官方文檔: https://www.uvicorn.org/settings/#logging
本文出自 qbit snap
user avatar u_17494575 头像 u_17400586 头像 wangtian_65f943469b2c3 头像 journey_64224c9377fd5 头像 oeasy 头像 u_15505879 头像 xingchendahai_68d7dff410962 头像 kuanrongdeshanyang 头像 zyuxuaner 头像 huifeideniao 头像 swiftcommunity 头像 aitigou 头像
点赞 15 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.