当前位置:   article > 正文

Python logging日志模块的使用_python logging.info

python logging.info

在实际的开发过程中,为了方便调试程序,记录系统的运行状态及错误等,及时发现系统的问题并快速定位问题,通常会使用日志。下面来介绍下在Python项目中如何使用日志。

Python提供了一个用于记录日志的标准库模块logging,主要用于进行格式化内容输出,可将格式化内容输出到屏幕或者文件。logging模块实现了许多强大的函数和类,可以为应用程序提供一个灵活的事件日志系统。

logging的简单使用

日志级别

logging模块日志级别有DEBUG、INFO、WARNING、ERROR、CRITICAL五种。


 

级别排序:DEBUG < INFO < WARNING < ERROR < CRITICAL。级别最低的是DEBUG,级别最高的是CRITICAL。 设置了日志级别后,调用比级别低的日志记录函数不会输出任何信息,例如setLevel(logging.INFO),此时函数参数为INFO,那么该logger将只会处理INFO、WARNING、ERROR和CRITICAL级别的日志,而DEBUG级别的消息将会被忽略。

日志输出


 

  1. import logging
  2. logging.debug("这条日志是debug级别")
  3. logging.info("这条日志是info级别")
  4. logging.warning("这条日志是warning级别")
  5. logging.error("这条日志是error级别")
  6. logging.critical("这条日志是critical级别")

执行结果为:

image.png


通过结果,你会发现调用debug()和info()方法没有输出任何信息,这是因为默认的日志级别是ERROR,上面我们说了调用比级别低的日志记录函数不会输出任何信息,所以低于ERROR级别的日志不会输出。想要输出的话要更改日志级别,可以使用logging模块的basicConfig()方法修改日志级别。

  1. import logging
  2. logging.basicConfig(level=logging.DEBUG) # 修改日志级别为DEBUG
  3. logging.debug("这条日志是debug级别")
  4. logging.info("这条日志是info级别")
  5. logging.warning("这条日志是warning级别")
  6. logging.error("这条日志是error级别")
  7. logging.critical("这条日志是critical级别")

执行结果为:

image.png

设置日志输出格式

上面输出结果中每行日志信息的格式是 日志级别:日志器名称:日志内容,之所以会这样输出,是因为logging模块提供的日志记录函数所使用的日志器的默认日志格式为BASIC_FORMAT,其值为:%(levelname)s:%(name)s:%(message)s 我们可以根据以下进行日志输出格式的自定义:

设置日志输出格式的例子如下:

  1. import logging
  2. log_formatter = '%(levelname)s %(asctime)s %(filename)s:第%(lineno)d行: %(message)s'
  3. logging.basicConfig(level=logging.DEBUG, format=log_formatter)
  4. logging.debug("这条日志是debug级别")
  5. logging.info("这条日志是info级别")
  6. logging.warning("这条日志是warning级别")
  7. logging.error("这条日志是error级别")
  8. logging.critical("这条日志是critical级别")

 

执行结果为:

image.png

logger的高级用法

如果只是简单的使用logging模块,那么使用上面的方法基本就可以满足了,但是logging模块的用法不止如此,下面来看一下。 logging模块采用了模块化设计,主要包含四种组件:

  • Loggers:日志器,提供应用程序直接调用的接口
  • Handlers:处理器,决定将日志记录分配至正确的目的地;
  • Filters:过滤器,提供更好的粒度控制,对日志信息进行过滤,决定哪些日志会被输出
  • Formatters:格式器,设置日志记录的输出格式

在实际操作中使用logging的步骤一般是:先创建日志记录器,再设置日志级别,再创建日志文件,再设置日志格式,最后再将日志处理程序记录到记录器。

使用示例:

  1. import logging
  2. from logging.handlers import RotatingFileHandler
  3. # 创建日志记录器
  4. logger = logging.getLogger()
  5. # 设置日志级别
  6. logger.setLevel(logging.DEBUG)
  7. # 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件个数上限
  8. file_log_handler = RotatingFileHandler("logs/test.log", maxBytes=1024 * 1024 * 100, backupCount=10)
  9. # 创建日志记录的格式
  10. formatter = logging.Formatter('%(levelname)s %(asctime)s %(filename)s:第%(lineno)d行: %(message)s')
  11. # 设置日志记录格式
  12. file_log_handler.setFormatter(formatter)
  13. stream_handler = logging.StreamHandler() # 往屏幕上输出
  14. # 添加日志记录器
  15. logging.getLogger().addHandler(file_log_handler)
  16. logging.getLogger().addHandler(stream_handler)
  17. logging.debug("这条日志是debug级别")
  18. logging.info("这条日志是info级别")
  19. logging.warning("这条日志是warning级别")
  20. logging.error("这条日志是error级别")
  21. logging.critical("这条日志是critical级别")

通过上面示例代码,我们可以把日志输出到文件,如果想要把日志同时输出在文件和屏幕上,还需要再创建并添加一个往屏幕上输出的日志处理器器:logging.StreamHandler()。

总结

以上就是Python中日志模块logging的使用,日志记录是程序开发中很重要的一部分,如果你还没开始使用或者还在使用print记录的话,快去用起来吧。


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/590542
推荐阅读
相关标签
  

闽ICP备14008679号