新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例讲述了Python使用logging模块实现打印log到指定文件的方法。分享给大家供大家参考,具体如下:
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了屯昌免费建站欢迎大家使用!可能我们经常会使用print来输出信息到窗口,但当我们有很多个py文件需要运行,项目比较庞大的到时候,print简直就是太low了点了。那么我们可以使用强大的logging模块,把输出到指定的本地pc某个路径的文件中。
一、logging的框架
1、 Loggers: 可供程序直接调用的接口,app通过调用提供的api来记录日志
2、 Handlers: 决定将日志记录分配至正确的目的地
3、 Filters:对日志信息进行过滤,提供更细粒度的日志是否输出的判断
4、 Formatters: 制定最终记录打印的格式布局
二、Log级别
系统默认有6个级别,优先级:
CRITICAL 50
ERROR 40
WARNING 30
INFO 20
DEBUG 10
NOTSET 0
设置要打印的log时只需要设置优先级,比如设置打印INFO,那么比INFO优先级高的WARNING/ERROR/CRITICAL都将被打印。
三、正常的打印
这里只输出了ERROR和WARNING的信息,是因为logging默认的输出级别是WARNING。
四、输出到指定文件
来看看这样写的代码:
import logging import unittest class lgtest(unittest.TestCase): logging.basicConfig(filename='../LOG/'+__name__+'.log',format='[%(asctime)s-%(filename)s-%(levelname)s:%(message)s]', level = logging.DEBUG,filemode='a',datefmt='%Y-%m-%d%I:%M:%S %p') def test(self): logging.error("这是一条error信息的打印") logging.info("这是一条info信息的打印") logging.warning("这是一条warn信息的打印") logging.debug("这是一条debug信息的打印") if __name__=='__main__': unittest.main()