gunicorn fastapi uvicorn 配置文件记录

2024-04-21  本文已影响0人  leon0514

配置代码

import os
import logging.config

# 指定每个工作者的线程数
workers = 4
threads = 2
# 监听内网端口5000
bind = '0.0.0.0:8000'
# 设置守护进程,将进程交给supervisor管理
daemon = True 
# 工作模式协程
worker_class = 'uvicorn.workers.UvicornWorker'
# 设置最大并发量
worker_connections = 200
# 设置进程文件目录
pidfile = 'log/gunicorn.pid'

timeout = 120

capture_output = True

loglevel = 'info'
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'

logconfig_dict = {
    'version':1,
    'disable_existing_loggers': False,
    "root": {"level": "INFO", "handlers": ["error_file", "access_file"]},
    'loggers':{
            "gunicorn.error": {
                        "level": "DEBUG",# 打日志的等级可以换的,下面的同理
                        "handlers": ["error_file"], # 对应下面的键
                        "propagate": 1,
                        "qualname": "gunicorn.error"
                    },
    
            "gunicorn.access": {
                        "level": "DEBUG",
                        "handlers": ["access_file"],
                        "propagate": 0,
                        "qualname": "gunicorn.access"
                    }
        },
    'handlers':{
            "error_file": {
                        "class": "logging.handlers.RotatingFileHandler",
                        "maxBytes": 1024*1024*1024,# 打日志的大小,我这种写法是1个G
                        "backupCount": 2,# 备份多少份,经过测试,最少也要写1,不然控制不住大小
                        "formatter": "generic",# 对应下面的键
                        # 'mode': 'w+',
                        "filename": "log/error.log"# 打日志的路径
                    },
            "access_file": {
                        "class": "logging.handlers.RotatingFileHandler",
                        "maxBytes": 1024*1024*1024,
                        "backupCount": 2,
                        "formatter": "generic",
                        "filename": "log/access.log",
                    }
        },
    'formatters':{
            "generic": {
                        "format": "'[%(process)d] [%(asctime)s] %(levelname)s [%(filename)s:%(lineno)s] %(message)s'", # 打日志的格式
                        "datefmt": "[%Y-%m-%d %H:%M:%S %z]",# 时间显示方法
                        "class": "logging.Formatter"
                    },
            "access": {
                        "format": "'[%(process)d] [%(asctime)s] %(levelname)s [%(filename)s:%(lineno)s] %(message)s'",
                        "class": "logging.Formatter"
                    }
        }
}
gunicorn server:app -c gunicorn.py
上一篇 下一篇

猜你喜欢

热点阅读