在日常开发中,或者在项目生产环境中,日志的存在是非常重要且必要的,方便排查、跟踪、解决问题。
而python自带的logging模块在配置比较复杂,新手们可以直接利用loguru模块来,简单、方便、效率。
pip install loguru我们新建一个python文件, 添加如下代码做下输出测试
from loguru import loggerlogger.debug("A debug message.")logger.info("An info message.")logger.success("A success message.")logger.warning("A warning message.")logger.error("An error message.")logger.critical("A critical message.")然后运行,看下控制台输出

可以清楚的看到,他已经帮我把颜色 ,还有日志的时间,以及log位置行号都有输出了,这些在logging里原本是要自己的配置的,现在他都已经帮我封装处理好了,非常人性化,这样我们就可以把时间花在解决其他问题上了。
那除了控制台输出,我们在记日志的时候,往往需要将日志写到指定的文件里去,这样在出现问题时,只需要对日志文件进行分析,来定位处理出现的问题。
from loguru import loggerlogger.add("app.log") #写日志写到文件里去logger.debug("A debug message.")logger.info("An info message.")logger.success("A success message.")logger.warning("A warning message.")logger.error("An error message.")logger.critical("A critical message.")这部分也是开发时常用到,比如我们不能让一个日志无限制的累加,这样在后续打开时,将非常痛苦与难于分析,所以我们常常需要进行切割 ,比如一天一个日志,或者当日志达到10M就新开一个日志文件等。
实现方式如下:
logger.add("app.log", rotation="10 MB") #满10MB就自动切走,新日志进新文件logger.add("app.log", rotation="00:00") #每天零点,准时新开一个logger.add("app.log", rotation="1 week") #每周一次logger.add("app.log", rotation="Monday at 12:00") #每周一中午logger.add("app.log", rotation="1 hour") #每小时生成一个新文件,适合流量暴增的排查你只想写在一个日志里,又不想他无限累加,你可以选择留存操作,比如只保留近7天的日志,就可以通过如下代码实现
logger.add("app.log", retention="7 days")#只保留最近7天的日志因为loguru是单例模型,一个项目中往往会有多个python文件 ,这时可以创建一个全局的log配置文件,初始化下,这样全局都会按这个配置生成log。
比如logger_config.py:
#全局配置logfrom loguru import loggerdef setup_logging(): logger.remove() logger.add("app.log", rotation="1 day", retention="7 days")然后在主文件main.py里顶部调用下,做下配置,这样全局都生效。
from logger_config import setup_loggingsetup_logging() #在导入其他业务模块前执行, import task_bimport task_apython的强大在于他的生态非常的完美,日常平时在开发时,要善于利用一些工具,这样可以帮助我们提高效率 ,把时间集中在更为重要的问题或需求上。