百科狗-知识改变命运!
--

Python 中 Logging 模块使用详情

梵高1年前 (2023-11-21)阅读数 14#技术干货
文章标签程序

1.为什么要用logging模块

在实际应用中,日志文件十分重要,通过日志文件,我们知道程序运行的细节;同时,当程序出问题时,我们也可以通过日志快速定位问题所在。在我们写程序时,也可以借助logging模块的输出信息来调试代码。

但是很多人还是在程序中使用print()函数来输出一些信息,比如:

print'Startreadingdatabase'

records=model.read_recrods()

print'#records',records

print'Updatingrecord...'

model.update_records(records)

print'done'

这样用的话缺点很明显,当程序写好运行时,我们要把这些print()函数删掉,在简单的的程序中用还行,当程序比较复杂时,这个办法很低效。

如果使用logging模块,看看效果:

importlogging

logging.basicConfig(level=logging.INFO)

logger=logging.getLogger(__name__)

logger.info('Startreadingdatabase')

#readdatabasehere

records={'john':55,'tom':66}

logger.debug('Records:%s',records)

logger.info('Updatingrecords...')

#updaterecordshere

logger.info('Finishupdatingrecords')

Python 中 Logging 模块使用详情

运行结果如下:

INFO:__main__:Startreadingdatabase

INFO:__main__:Updatingrecords...

INFO:__main__:Finishupdatingrecords

你也许会问,这和print()函数有什么区别呢?区别就在于,logging模块可以通过改变level来控制一些语句是否被输出,比如当我们把level改成DEBUG级别:

logging.basicConfig(level=logging.DEBUG)

得到输出如下:

INFO:__main__:Startreadingdatabase

DEBUG:__main__:Records:{'john':55,'tom':66}

INFO:__main__:Updatingrecords...

INFO:__main__:Finishupdatingrecords

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,可以输出我们想要的格式,比如:

importlogging

logging.basicConfig(format='%(asctime)s-%(message)s',datefmt='%d-%b-%y%H:%M:%S')

logging.warning('Adminloggedout')

结果是:

12-Jul-1820:53:19-Adminloggedout

这就是在format参数中设置了时间的,所以得到了时间,我们可以输出多种想要的信息

以上内容为大家介绍了Python中Logging模块使用详情,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:开发教育。http://www.baikegou.com/

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)