目录
1.为什么要用logging模块2.logging模块介绍3.基础设置1.为什么要用logging模块
在实际应用中,日志文件十分重要,通过日志文件,我们知道程序运行的细节;同时,当程序出问题时,我们也可以通过日志快速定位问题所在。在我们写程序时,也可以借助 logging 模块的输出信息来调试代码。
但是很多人还是在程序中使用print()函数来输出一些信息,比如:
print "Start reading database" records = model.read_recrods() print "# records", records print "Updating record ..." model.update_records(records) print "done"
这样用的话缺点很明显,当程序写好运行时,我们要把这些print()函数删掉,在简单的的程序中用还行,当程序比较复杂时,这个办法很低效。
如果使用logging
模块,看看效果
import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) logger.info("Start reading database") # read database here records = {"john": 55, "tom": 66} logger.debug("Records: %s", records) logger.info("Updating records ...") # update records here logger.info("Finish updating records")
运行结果如下:
INFO:__main__:Start reading database INFO:__main__:Updating records ... INFO:__main__:Finish updating records
你也许会问,这和print()
函数有什么区别呢?区别就在于,logging模块可以通过改变level来控制一些语句是否被输出,比如当我们把level改成DEBUG级别:
logging.basicConfig(level=logging.DEBUG)
得到输出如下:
INFO:__main__:Start reading database
DEBUG:__main__:Records: {"john": 55, "tom": 66}
INFO:__main__:Updating records ...
INFO:__main__:Finish updating records
2.logging模块介绍
logging
模块是python自带的一个包,因此在使用的时候,不必安装,只需要import即可。有5个level,分别是debug,主要是查看一下程序运行的信息,一般是调试程序要看的信息;info,是我们看程序是否如预料执行的信息;warn,意料之外的,但是不影响程序运行;error
和critical
就是一些比较严重的问题,会影响程序运行。默认leval是warn,这个时候debug级别和info级别就不会被输出到日志里了。如果想要看到这些信息,就需要进行一些设置。
3.基础设置
我们主要调用basicConfig(***kwargs*)
这个函数对logging
进行设置。
常用的参数如下:
level
:主要调整logging的级别filename
:输出日志的路径filemode
:直接写入还是追加写入format
:输出的格式
我们通过调整format,可以输出我们想要的格式,比如:
import logging logging.basicConfig(format="%(asctime)s - %(message)s", datefmt="%d-%b-%y %H:%M:%S") logging.warning("Admin logged out")
结果是:
12-Jul-18 20:53:19 - Admin logged out
这就是在format
参数中设置了时间的,所以得到了时间,我们可以输出多种想要的信息
总结:
本文主要介绍了logging
模块的基础用法,除非是自己写的小脚本中我们使用print()函数,其他情况下最好还是用logging模块来打印信息,输出日志吧。
到此这篇关于 Python 中 logging 模块使用详情的文章就介绍到这了,更多相关 Python 中 logging 模块使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?