Python3如何日志同时输出到控制台和文件
Python3日志同时输出到控制台和文件
python3中想要将程序的日志打印到文件中,便于后期查看原因。
但是在开发阶段又想让日志打印到控制台,这时候可以用一个类将其封装起来,用法就跟java差不多,配置也很简单。
需要用到python内置模块 logging 和其中的函数handlers。
直接上代码
import logging from logging import handlers # 日志输出 class Logger(object): # 日志级别关系映射 level_relations = { "debug": logging.DEBUG, "info": logging.INFO, "warning": logging.WARNING, "error": logging.ERROR, "critical": logging.CRITICAL } def __init__(self, filename="../log/test.log", level="info", when="D", backupCount=3, fmt="%(asctime)s - %(pathname)s[line:%(lineno)d] - %" "(levelname)s: %(message)s"): # 设置日志输出格式 format_str = logging.Formatter(fmt) # 设置日志在控制台输出 streamHandler = logging.StreamHandler() # 设置控制台中输出日志格式 streamHandler.setFormatter(format_str) # 设置日志输出到文件(指定间隔时间自动生成文件的处理器 --按日生成) # filename:日志文件名,interval:时间间隔,when:间隔的时间单位, backupCount:备份文件个数,若超过这个数就会自动删除 fileHandler = handlers.TimedRotatingFileHandler(filename=filename, when=when, backupCount=backupCount, encoding="utf-8") # 设置日志文件中的输出格式 fileHandler.setFormatter(format_str) # 设置日志输出文件 self.logger = logging.getLogger(filename) # 设置日志级别 self.logger.setLevel(self.level_relations.get(level)) # 将输出对象添加到logger中 self.logger.addHandler(streamHandler) self.logger.addHandler(fileHandler)
用法就跟java一样,创建一个Logger对象,通过对象去操作。
log = Logger(level="debug").logger log.debug("debuf") log.info("info") log.warning("warning") log.error("error")
可以在控制台中看到如下打印信息:
2019-07-02 21:32:25,553 - E:/python/ryan_py/tsunagaru/logger.py[line:30] - DEBUG: debuf
2019-07-02 21:32:25,625 - E:/python/ryan_py/tsunagaru/logger.py[line:31] - INFO: info
2019-07-02 21:32:25,625 - E:/python/ryan_py/tsunagaru/logger.py[line:32] - WARNING: warning
2019-07-02 21:32:25,626 - E:/python/ryan_py/tsunagaru/logger.py[line:33] - ERROR: error
Process finished with exit code 0
同时,还可以看到在父级同级的目录下的/log中创建了一个名叫test.log的文件。
打开test.log文件,可以看到里面的内容跟控制台上的输出内容是一致的。
2019-07-02 21:32:25,553 - E:/python/ryan_py/tsunagaru/logger.py[line:30] - DEBUG: debuf
2019-07-02 21:32:25,625 - E:/python/ryan_py/tsunagaru/logger.py[line:31] - INFO: info
2019-07-02 21:32:25,625 - E:/python/ryan_py/tsunagaru/logger.py[line:32] - WARNING: warning
2019-07-02 21:32:25,626 - E:/python/ryan_py/tsunagaru/logger.py[line:33] - ERROR: error
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
这篇文章主要介绍了pycharm开发最简单的界面和通用mvc模板的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-05-05
最新评论