gunicorn 自定义日志

gunicorn 自定义日志

默认情况下,如果只通过errorlogaccesslog参数指定 gunicorn 的日志文件,日志文件会一直增长,最后导致硬盘占用过大和检查日志不方便。因此需要自定义配置滚动日志保存。

配置文件

直接在 gunicorn 的配置文件 gunicorn_conf.py 中添加logconfig_dict配置项

import multiprocessingbind = '0.0.0.0:8000'
workers = multiprocessing.cpu_count() * 2 + 1
backlog = 2048
debug = False
timeout = 500
daemon = True
pidfile = './logs/gunicorn.pid'
logconfig_dict = {'version': 1,'disable_existing_loggers': False,'root': {'level': 'INFO', 'handlers': ['console']},'loggers': {'gunicorn.error': {'level': 'INFO','handlers': ['error_file'],'propagate': False,'qualname': 'gunicorn.error'},'gunicorn.access': {'level': 'INFO','handlers': ['access_file'],'propagate': False,'qualname': 'gunicorn.access'}},'handlers': {# 必须配置 console handler,root logger 默认使用 console handler# 或者在 root 中指定自定义的 handler'console': {'class': 'logging.StreamHandler','formatter': 'generic','stream': 'ext://sys.stdout'},'error_file': {'class': 'logging.handlers.RotatingFileHandler','filename': './logs/gunicorn.error.log','maxBytes': 5 * 1024 * 1024,'backupCount': 5,'formatter': 'generic'},'access_file': {'class': 'logging.handlers.RotatingFileHandler','filename': './logs/gunicorn.access.log','maxBytes': 5 * 1024 * 1024,'backupCount': 5,'formatter': 'generic'},},'formatters': {'generic': {'format': '%(asctime)s [%(process)d] [%(levelname)s] %(message)s','datefmt': '%Y-%m-%d %H:%M:%S %z','class': 'logging.Formatter'}}
}

问题

将 19 版本的配置直接复制到 22 版的 gunicorn 中使用时,出现Error: Unable to configure root logger报错。
通过对比 gunicorn 的CONFIG_DEFAULTS配置,发现在老版本中不需要考虑 root logger 的问题,在新版本中,gunicorn 会有一个默认的 root logger,并且使用的 handler 是 console,如果在 handlers 中没有配置就会导致报错。
解决方法:

  1. 在 handler 中配置 console handler
  2. 增加配置 root logger 配置项,并指定已有的 handler

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/739218.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工具|--LINQPad|--使用DnSpy调试LINQPad

前言LINQPad本身就有调试功能, 使用dnSpy调试LINQPad的代码, 岂不是多此一举 ? 其实主要是为了使用dnSpy调试LINQPad中使用到依赖dll的的底层代码, 比如, 在LINQPad中使用到了WPF的dll, 使用dnSpy就可以调试到WPF的一些底层代码.并且, 我尝试过, 直接使用dnSpy加载LINQPad生成…

字符串函数库的经典使用学习

<?php// 1.单引号定义字符串// 2.双引号定义字符串// 3.定界符定义字符串// 1.单引号定义字符串// echo this is my mother;echo this is \my\ mother <br>;// 单引号不能解析转义符\n 换行 \t 缩进echo this \n is a simple \t string<br>;$username = admin;…

解密Prompt系列33. LLM之图表理解任务-多模态篇

这一章我们聚焦多模态图表数据。先讨论下单纯使用prompt的情况下,图片和文字模态哪种表格模型理解的效果更好更好,再说下和表格相关的图表理解任务的微调方案上一章我们介绍了纯文本模态的表格理解任务,这一章我们聚焦多模态图表数据。先讨论下单纯使用prompt的情况下,图片…

用StabilityMatrix一键安装Stable Diffusion

Stable Diffusion是2022年发布的深度学习文字到图像生成模型,它既能免费使用,又能部署在本地端,又有非常多的模型可以直接套用,在使用体验上比Midjourney和DALL-E更加强大。Stable Diffusion使用的模型有下列几大类,对照模型网站 https://civitai.com 以形成更直观的认识:…

「代码随想录算法训练营」第四天 | 链表 part2

24.两两交换链表中的节点题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/ 题目难度:中等 文章讲解:https://programmercarl.com/0024.两两交换链表中的节点.html#算法公开课 视频讲解: https://www.bilibili.com/video/BV1YT411g7br 题目状态:有思路,但细节…

【0基础学爬虫】爬虫框架之 feapder 的使用

前言 大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫。 学习爬虫的过程中,一…

PTA题目集7-8的总结

PTA题目集7-8的总结 1.前言: 2.设计与分析: 3.踩坑心得: 4.改进意见: 5.总结 1.前言:PTA题目集7新增了互斥开关,窗帘,多并联电路和多串联电路。由于之前的输入信息中设备的引脚没有作用,所以我的正则表达式只用来提取设备的名字。而互斥开关有三个引脚,不同引脚的电压…

pycharm 动态绘图

_tkinter.TclError: Cant find a usable init.tcl in the following directories:解决办法: 1 打开报错地址所在文件 D:/Program Files/METACOMP/mlib/tcltk8/lib/tcl8.4/init.tcl: version conflict for package "Tcl": have 8.6.9, need exactly 8.4 2 修改init.t…

从零开始教你写一个MLIR Pass

笔者在去年写了一篇LLVM Pass的教程,现在从事MLIR的开发近1年了,写点教程回馈下社区。 MLIR(Multi-Level Intermediate Representation,多层中间表示)是LLVM之父(博士期间开发的LLVM)的Chris Lattner带领团队开发的编译器基础设施,其增强了 LLVM IR表达能力,而且其是关注P…

idm下载

获得百度网盘直链下载链接调用idm谷歌插件获得城盘直链下载链接调用idm谷歌插件 https://ctfile.qinlili.bid/当你的才华配不上你的野心,努力的时候到了!

Arthas进阶-笔记

《Arthas进阶》 学习目标类和类加载器相关的命令 monitor/watch/trace/stack等核心命令的使用 火焰图的生成 Arthas实战案例dump 作用 将已加载类的字节码文件保存到特定目录:logs/arthas/classdump/ 参数数名称 参数说明class-pattern 类名表达式匹配[c:] 类所属 ClassLoader…

域名、备案和HTTPS

有了域名后,可以方便其他人记住并访问12.域名、备案和HTTPS 有了域名后,可以方便其他人记住并访问,历史上不乏大企业花大价钱购买域名的:京东域名换成 JD.com,并且说是为了防止百度吸引流量,为什么? 唯品会买下域名 VIP.COM 或花费千万‍ 域名提供商 如果想要域名,得去…