按日期打印Python的Tornado框架中的日志的方法
作者:2shou 发布时间:2023-09-29 12:28:13
标签:Python
网站流量上来后,日志按天甚至小时存储更方便查看和管理,而Python的logging模块也提供了TimedRotatingFileHandler来支持以不同的时间维度归档日志。
然而根据Logging HOWTO的官方指南设置后,却发现新的日志只剩下root的,Tornado内部的logger全部没有生效。
参考stackoverflow上的一个回答,我发现下面的配置能让Tornado内部的logger也用上TimedRotatingFileHandler:
# logging.yaml
version: 1
disable_existing_loggers: false
formatters:
simple:
format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
loggers:
all:
handlers: [all]
propagate: false
tornado:
handlers: [all]
propagate: false
handlers:
console:
class: logging.StreamHandler
level: INFO
formatter: simple
stream: ext://sys.stdout
all:
class: logging.handlers.TimedRotatingFileHandler
level: INFO
formatter: simple
when: midnight
filename: ./logs/server.log
root:
level: INFO
handlers: [console, all]
propagate: true
只需在Tornado的入口代码处调用:
logging.config.dictConfig(yaml.load(open('logging.yaml', 'r')))
如果你想按别的时间维度分割日志,修改when参数对应的值就可以了。
特别注意:当when的值是D,表示由服务器启动的时间计起,每过24小时归档一次;而如果你和我一样,希望在每天的凌晨归档日志的话,可以配置为midnight。
Centos系统可能需要先安装python-yaml:sudo yum install python-yaml


猜你喜欢
- 单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节
- 本文实例分析了Go语言中的指针运算方法。分享给大家供大家参考。具体分析如下:Go语言的语法上是不支持指针运算的,所有指针都在可控的一个范围内
- 如何解决pycharm配置跨域不提示?正常我们需在在如上中间件内配置跨域,但是2019之前的版本配置中间件可能需要全部自己敲出来,不会有提示
- 本文介绍了Python实现曲线点抽稀算法的示例,分享给大家,具体如下:目录何为抽稀道格拉斯-普克(Douglas-Peuker)算法垂距限值
- 简单的学习下利用socket来建立客户端和服务端之间的连接并且发送数据1. 客户端socketClient.py代码import socke
- 一、单字节SQL注入MYSQL的SQL注入已经由来已久,以下是普遍采用的注入步骤:1、在GET参数上加一个/*或者#(mysql专有的注释)
- 调用Windows API锁定计算机本来想用Python32直接调用,可是没有发现Python32有Windows API LockWork
- 嗯,开场先胡扯几句不相关地感言。最近的工作让我有了很多实践的机会,同时也让我收获颇丰。在群里聊天的时候也提到过,所有的学习过程,最好是理论-
- 二元运算符作用于位,进行逐位运算。二元运算只是组合两个值以创建新值的规则。numpy.bitwise_and(): 此函数用于计算两个数组元
- python格式化字符串有%和{}两种 字符串格式控制符.字符串输入数据格式类型(%格式操作符号)%%百分号标记#就是输出一个%%c字符及其
- 那里都有狭窄的空间:网页横幅、新闻标题处的空间、柱状的广告,但一张来自照相机的照片却要大很多,它们的比例一般是 6 × 4 英寸 。你如何处
- 这是我记得的问题,基本都没答上来,大家知道的教教小弟,咱不能再不会了 1.在js里类的继承一般是类抄写和原型继承混合使用,在extjs的ex
- 注:此方法可用于配置gitlab也可用于配置github1.在github中创建一个账号:https://github.com/join?s
- 前言在网页应用中,我们经常需要在处理完表单或其它类型的用户输入后,显示一个通知信息给用户。对于这个需求,Django提供了基于Cookie或
- 本文实例讲述了Python实现读写INI配置文件的方法。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-imp
- jsonpathjsonpath 用于多层嵌套 json格式的 解析。pip install jsonpathJsonPath描述$根节点@
- 手残更新Pycharm 2020.1 版时将配置文件都删除了😂;在此重新记录下配置!安装教程参考:idea2020.1最新版永久破解/pyc
- Golang标准库binarybinary包实现了数字和字节序列之间的简单转换。1、ByteOrderByteOrder指定了如何将一个字节
- 本文实例讲述了Python实现操纵控制windows注册表的方法。分享给大家供大家参考,具体如下:使用_winreg模块的话基本概念:KEY
- 有时候,我们需要替换指定标签外的内容,而保留标签里面的内容不替换。比如当我们要在浏览器中显示出编辑器显示的原始格式时、需要将普通换行符“\n