热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

网站流量上来后,日志按天甚至小时存储更方便查看和管理,而Python的logging模块也提供了TimedRotatingFileHandler来支持以

网站流量上来后,日志按天甚至小时存储更方便查看和管理,而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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!



推荐阅读
author-avatar
修魔海的传说
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有