[Python] 使用logging记录日志

  最近搞了个爬数据的程序,为了测试某些可行性需要长时间挂着,并输出一些状态进行检查。昨晚用print+重定向先跑起来了,今天登上服务器一看,啥也没有。。。(本地测试的时候,程序退出后是有内容写入的)。偷懒失败,还是要乖乖写日志。
  Python内置了日志模块logging,简单看下来非常方便。我需要的控制台+文件写入、按时间拆分日志都有支持。

import logging
from logging.handlers import TimedRotatingFileHandler

_level = logging.DEBUG
# 日志内容格式化:时间(毫秒级) [级别] 内容
_format = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')

Log = logging.getLogger('')
Log.setLevel(_level)

# 输出到控制台
_console = logging.StreamHandler()
_console.setFormatter(_format)
# 输出到文件(按天拆分日志)
# 当前使用的log文件名为:log
# 历史文件名:log.日期
_file = TimedRotatingFileHandler('E:/pylog/log', 'D', 1, 0, 'utf-8')
_file.setFormatter(_format)

Log.addHandler(_console)
Log.addHandler(_file)
# 内容输出使用Log实例

  短短几行代码就满足了我对日志的功能需求。性能方面,初步设想是开一个日志线程,避免主线程在日志IO上浪费时间。今天看下来,logging好像没有提供这方面的支持。后面实际用到的时候再看吧~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。