按日期打印Python的Tornado框架中的日志的方法

Vicky ·
更新时间:2024-09-21
· 632 次阅读

网站流量上来后,日志按天甚至小时存储更方便查看和管理,而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 您可能感兴趣的文章:Python中使用logging模块打印log日志详解详解Python中的变量及其命名和打印python 打印对象的所有属性值的方法python中Pycharm 输出中文或打印中文乱码现象的解决办法打印出python 当前全局变量和入口参数的所有属性python中查找excel某一列的重复数据 剔除之后打印python使用正则表达式匹配字符串开头并打印示例Python打印输出数组中全部元素python 打印出所有的对象/模块的属性(实例代码)python3+PyQt5实现文档打印功能



方法 tornado Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章