Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

5.3. 日志

		
#!/usr/bin/env python
# -*- coding: utf-8 -*-
##############################################
# Home	: https://www.netkiller.cn
# Author: Neo <netkiller@msn.com>
# Upgrade: 2023-07-07
##############################################
try:
    import uvicorn, logging, sys

    from config import LOGFILE
except ImportError as err:
    print("ImportError: %s" % (err))
    exit()

LOGGING_CONFIG = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
        "default": {
            "()": "uvicorn.logging.DefaultFormatter",
            "fmt": "%(levelprefix)s %(message)s",
            "use_colors": None,
        },
        "access": {
            "()": "uvicorn.logging.AccessFormatter",
            "fmt": '%(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s',
        },
    },
    "handlers": {
        "default": {"formatter": "default", "class": "logging.handlers.TimedRotatingFileHandler", "filename": LOGFILE},
        "access": {"formatter": "access", "class": "logging.handlers.TimedRotatingFileHandler", "filename": f"{LOGFILE}.access.log"},
    },
    "loggers": {
        "": {"handlers": ["default"], "level": "INFO"},
        "uvicorn.error": {"level": "INFO"},
        "uvicorn.access": {"handlers": ["access"], "level": "INFO", "propagate": False},
    },
}

if __name__ == "__main__":
    try:
        uvicorn.run(app="main:app", host="0.0.0.0", port=8000, workers=4, log_config=LOGGING_CONFIG)
    except KeyboardInterrupt:
        print("Crtl+C Pressed. Shutting down.")		
		
		

输出结果

		
docker@debian:~$ tail /tmp/uvicorn.access.log 
INFO:     172.16.0.102:61485 - "GET / HTTP/1.1" 200 OK
INFO:     172.16.0.102:61485 - "GET / HTTP/1.1" 304 Not Modified
INFO:     172.16.0.102:61485 - "GET / HTTP/1.1" 304 Not Modified
INFO:     172.16.0.102:61485 - "GET / HTTP/1.1" 304 Not Modified
INFO:     172.16.0.102:61485 - "GET / HTTP/1.1" 304 Not Modified

docker@debian:~$ tail /tmp/uvicorn.log
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     OPENAI_API_KEY=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
INFO:     Started server process [21112]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     OPENAI_API_KEY=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
INFO:     Started server process [21110]
INFO:     Waiting for application startup.
INFO:     Application startup complete.