欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

Python3 日志同时输出到控制台和文件

发布时间:2024/1/18 python 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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").loggerlog.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: errorProcess 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

 

总结

以上是生活随笔为你收集整理的Python3 日志同时输出到控制台和文件的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。