本文主要是介绍python 重定向控制台stdout与stderr到loguru,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
python 重定向stdout与stderr到loguru
安装
pip install loguru
重定向文件:log_init.py
import sys
from loguru import loggerDEBUG = 0
INFO = 1
ERROR = 2class LoggerWriter:def __init__(self, level):# 日志级别self.level = leveldef write(self, message):# 只有message非空时才记录if message.rstrip() != "":if self.level == DEBUG:logger.debug(message)elif self.level == ERROR:logger.error(message)else:logger.info(message)def flush(self):# 这个方法是为了满足文件对象的接口,但是什么都不需要做pass# 重定向标准输出和错误输出
def init_log():# 只定义一次add就可以了logger.add('log/log_{time:YYYY-MM-DD}.log', rotation='00:00')# 重定向sys.stdout = LoggerWriter(DEBUG)sys.stderr = LoggerWriter(ERROR)logger.info("--------------------------- start -----------------------")# 引入时,自动调用初始化log
init_log()
main.py引用
建议如果自己写的代码直接使用 from loguru import logger
import log_init # print 重定向到日志,放第一行
这篇关于python 重定向控制台stdout与stderr到loguru的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!