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