gunicorn的日志配置

怎么把gunicorn的日志输出到console?

关于配置gunicorn下日志的各种问题

  1. 配置日志到console
  2. 配置日志输出到文件
  3. 配置日志输出到console+文件
配置到console

比较简单

# gunicorn.conf.py
accesslog = '-' 
配置到日志log文件

一般Error级别的文件可能会特意用一个专属log记录下来

# gunicorn.conf.py
# 可以同时兼容不同类型的日志有不同的输出方式
accesslog = '-' 
errorlog = os.path.join('/home/logs/', 'gunicorn-error.log')
同时配置到console+日志文件

同一种类型的日志比如accesslog想要有两种输出模式稍微复杂一点,可以配合用python自带的logging.handlers实现

logging自带了很多种类型的handlers,举例一种适合生产常用的handler:TimedRotatingFileHandler
特点:可以设置随着时间变化新生成日志文件,比如一天生成一个日志文件,方便后续排查日志搜索。

实现方式:

  1. 先定制一个logger,并配置好TimedRotatingFileHandler,用于将日志输出到文件
# g_logging.py
import logging
from gunicorn import glogging
from logging.handlers import RotatingFileHandler, TimedRotatingFileHandler


class CustomGunicornLogger(glogging.Logger):

    def setup(self, cfg):
        super().setup(cfg)
        logger = logging.getLogger("gunicorn.access")
        logger.setLevel(logging.INFO)
        logger.handlers.append(TimedRotatingFileHandler('/home/logs/day.log', backupCount=10, when='D')) # 每天生成一个记录log文件,如果设置when为'M' 那就是一分钟一个log文件,最多备份backupCount=10个文件

  1. 将定制好的logger class 配置到gunicorn
# gunicorn.conf.py
logger_class = "g_logging.CustomGunicornLogger"
accesslog = '-'
  1. gunicorn启动服务,你就会得到std日志和带日期方便查询的log文件了
参考

python官方文档logging-handlers
gunicorn官方文档logging

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值