本篇文章给大家分享的是有关Python中怎么记录程序日志,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Python中内置一个日志模块——logging,通过它我们就可以很方便的在Python代码中记录简单的程序日志。
logging模块将日志分为了五个等级:
DEBUG:调试信息,通常在诊断问题的时候用得着;
INFO:普通信息,确认程序安装预期运行;
WARNING:警告信息,表示发生了意想不到的事情,或者指示接下来可能会出现一些问题,但是程序还是继续运行;
ERROR:错误信息,程序运行中出现了一些问题,一些功能没有执行;
CRITICAL:危险信息,一个严重的错误,导致程序无法继续运行。
上述的五个等级的日志信息分别使用:logging模块的debug()、info()、warning()、error()、critical()方法来实现。
默认情况下,logging使用的日志级别是warning,这表示只有在这个级别及其以上级别的日志信息才会被记录,所以默认情况下debug信息和info信息都不会被显示出来。
我们来测试一下:
运行代码,控制台会显示:
ERROR:root:出现了错误
WARNING:root:警告信息
INFO级别的信息,果然没有显示出来。
我们使用logging模块的basicConfig()方法,修改一个日志输出等级为INFO :
这样,控制台中就能够输出INFO级别的信息了:
ERROR:root:出现了错误
INFO:root:打印信息
WARNING:root:警告信息
记录的日志信息除了打印到控制台之外,我们还能够将其写入文件中。同样是使用basicConfig()方法进行设置:
运行程序,会生成一个名为test.log的文本文件,里面是日志记录的内容:
如果我们重复运行上面的代码,会发现,日志信息会追加在test.log文件的内容后面:
如果不想这样怎么办,同样在basicConfig()方法中使用filemode参数进行设置:
这样,生成的日志文件就是一个新的:
在上面输出的日志信息我们可以发现,所有的消息都是"日志级别:角色:消息"这样的格式输出的。
如果我们想改变日志消息的格式呢?同样使用basicConfig()方法,利用其format参数进行设置。先来看一个例子:
我们设置格式为消息等级和消息内容。输出的日志内容中,已经没有了root这个信息了:
logging支持的格式还不止这两种,我们来看看:
%(asctime)s:日志创建时的普通时间;
%(created)f:日志创建时的时间(由time.time()返回);
%(filename)s:文件名;
%(funcName)s:调用日志记录的函数;
%(levelname)s:日志消息的文本级别;
%(levelno)s:日志消息的数字级别;
%(lineno)d:调用日志消息的行号;
%(msecs)d:创建时间的毫秒部分;
%(message)s:日志消息;
%(name)s:日志器的名称;
%(pathname)s:记录日志的源文件的路径名;
%(process)d:进程ID;
%(processName)s:进程名;
%(thread)d:线程ID;
%(threadName)s:线程名;
%(relativeCreated)d:创建日志记录的时间(以毫秒为单位)
借助于这些格式,我们可以自定义日志记录,比如显示时间:
以上就是Python中怎么记录程序日志,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。