Python小知识,别用print打印日志,可以用logging模块

统计与数据分析实战

共 1216字,需浏览 3分钟

 ·

2021-04-07 13:22

大家在写代码的时候,经常会使用print打印日志方便排查问题,然而print的问题就是太过简单,缺少时间、日志级别等格式化信息。


Python自带的logging模块,很简单就能实现日志的配置和打印,它有两种用法,方法1是把日志输出到标准输出,其实就是命令行界面,方法2则是输出日志到文件,更加方便。


## 方法1:配置并输出日志到标准输出


import logging
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT)

logging.info("清空重建表")


当执行程序,就会输出:

2021-01-24 10:43:37,883 - INFO - 清空重建表


比自己用print要好用一些了。


## 方法2:配置输出到日志文件


import loggingimport logging.handlersimport os
LOG_FILE = "test_log.log"logging.basicConfig(filename=LOG_FILE, filemode="w", format="[%(levelname)s] %(asctime)s [%(filename)s:%(lineno)d, %(funcName)s] %(message)s", level=logging.INFO)time_hdls = logging.handlers.TimedRotatingFileHandler(LOG_FILE, when='D', interval=1, backupCount=7)logging.getLogger().addHandler(time_hdls)

logging.info("hello world")


然后,你会发现有这个表现:

1、多了一个文件,叫做test_log.log;

2、文件中是这样的内容,信息更加丰富:

[INFO] 2021-03-29 22:19:46,753 [testlog.py:14, <module>] hello worldhello world

3、这个日志文件,会每天备份一个文件,并且只保留7天的日志;


真正的线上服务,是会这样来配置日志的,方便、强大。

浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报