1。为什么要使用日志模块在实际应用中,日志文件非常重要。通过日志文件,我们知道程序运行的详细情况;同时,当程序出现问题时,我们也可以通过日志快速定位问题。我们在写程序的时候,也可以利用logging模块的输出信息来调试代码。但是很多人还是会在程序中使用print()函数来输出一些信息,比如:print'Startreadingdatabase'records=model.read_recrods()print'#records',recordsprint'Updatingrecord...'model.update_records(records)print'done'有明显的缺点。当程序编写运行时,我们需要删除这些print()函数。在简单的程序中使用是可以的。当程序比较复杂时,这种方法效率很低。如果使用logging模块,看效果:importlogginglogging.basicConfig(level=logging.INFO)logger=logging.getLogger(__name__)logger.info('Startreadingdatabase')#readdatabasehererecords={'john':55,'tom':66}logger.debug('Records:%s',records)logger.info('Updatingrecords...')#updaterecordsherelogger.info('Finishupdatingrecords')结果如下如下:INFO:__main__:StartreadingdatabaseINFO:_??_main__:Updatingrecords...INFO:_??_main__:Finishupdatingrecords你可能会问,这个和print()函数有什么区别?不同的是,logging模块可以通过改变level来控制一些语句是否输出,比如当我们将level改为DEBUG级别时:logging.basicConfig(level=logging.DEBUG)输出如下:INFO:__main__:StartreadingdatabaseDEBUG:__main__:Records:{'john':55,'tom':66}INFO:_??_main__:Updatingrecords...INFO:_??_main__:Finishupdatingrecords2.logging模块介绍logging模块是一个包自带python,所以使用的时候不需要安装,导入即可。共有5个级别,即debug,主要是查看程序的运行信息,一般是调试程序时要看的信息;info,就是我们查看程序是否按预期执行的信息;warn,意外,但不影响程序运行;error和critical是一些比较严重的问题,会影响程序的运行。默认级别是警告。此时debug级别和info级别不会输出到日志中。如果你想看到这些信息,你需要做一些设置。3.基本设置我们主要调用函数basicConfig(***kwargs*)来设置日志记录。常用的参数如下:level:主要调整日志级别filename:输出日志的路径filemode:直接写入还是附加writeformat:输出的格式我们可以通过调整格式来输出我们想要的格式,对于示例:导入日志记录。basicConfig(format='%(asctime)s-%(message)s',datefmt='%d-%b-%y%H:%M:%S')logging.warning('Adminloggedout')结果Yes:12-Jul-1820:53:19-Adminloggedout这是因为在format参数中设置了时间,所以获取时间后我们可以输出各种想要的信息总结:本文主要介绍logging模块基本用法,除非我们在自己写的小脚本中使用print()函数,否则其他情况下还是使用logging模块打印信息输出日志比较好。
