unittest html 没有明细日志 html打印日志_日志系统


日志文件的主要作用是记录了某个时刻,某个地点发生了什么!

对一个程序员而言,日志系统在程序开发、维护的过程中是非常重要的,日志系统可以帮助我们快速定位程序错误发生的时间和位置、以及程序出错的大致原因。在日志信息足够详细的前提下,日志还可以帮助我们分析用户行为,从而更好地为客户爸爸们提供精准有效的服务。

日志级别

碍于服务器I/O的压力,不能将所有的记录都保存下来,所以需要对日志等级进行分级,在python中,日志的级别如下:


unittest html 没有明细日志 html打印日志_四大组件_02


上述日志级别:DEBUG < INFO < WARNING < ERROR < CRITICAL; 执行程序时,logging会输出大于等于设置的日志等级的日志,比如设置的INFO,则会输出INFO,WARNING,ERROR, CRITICAL;还有系统会自动在控制台输出大于等于WARNING的日志。

除了上述级别之外,python还可以自定义日志级别,但是不要和系统自带地日志级别重复。


import


控制台输出:


WARNING:root:warning message
ERROR:root:error message
CRITICAL:root:critical message


logging.basicConfig()没有填入参数,说明程序员默认系统设置,所以,日志将会在控制台输出,且日志级别大于等于WARNING的日志才会被打印出来。

Python日志流程


unittest html 没有明细日志 html打印日志_html打印日志_03


logging模块的四大组件:


unittest html 没有明细日志 html打印日志_html打印日志_04


日志格式

日志格式如下:

日志级别:logger实例:日志消息

例子:WARNING: root: warning message

使用


(**kwargs


logging.basicConfig()函数主要用来设置显示日志信息的最小级别、日志显示的格式和保存日志的位置。

  1. filename: 保存日志的文件名
  2. filemode:文件模式。r:只读模式;w:写模式;a:追加模式
  3. formart:日志输出格式
  4. datafat:日志中文件输出格式
  5. level: 日志输出级别

例子:


import


在test.log文件中显示:


2019-09-01 18:16:10 root:DEBUG:This is a debug message
2019-09-01 18:16:10 root:INFO:This is an info message
2019-09-01 18:16:10 root:WARNING:This is a warning message
2019-09-01 18:16:10 root:ERROR:This is an error message
2019-09-01 18:16:10 root:CRITICAL:This is a critical message


如果发生异常,使用上述的INFO,DEBUG...不能将日志打印至指定位置。可以使用下面的函数


logging


例子:


logging


在text.log文件中显示:


(most recent call last


高级使用

在开发过程中使用上面的方法完全足够,不过我将在这里介绍更高级的使用方法。

在python日志流程中我们介绍了python的四大组件,为了方便,我们在这里将四大组件及其功能粘贴在这里。


unittest html 没有明细日志 html打印日志_四大组件_05


loggers:在python中使用的是单例模式,即我们只是通过一个接口获得了一个loggers对象,且这个对象在系统只有一个,这个对象就是根对象。

handlers:有时候我们既想让日志在控制台上显示,又想在log文件中显示,且显示的日志等级不一样,如何搞定,当然通过handlers搞定。

filters:过滤级别,控制在控制台中或者log文件中显示的日志等级

formartters:日志输出的格式。

例子:


import


控制台输出:


2019-09-01 18:58:36,756 my_logger WARNING customer warning message
2019-09-01 18:58:36,756 my_logger ERROR customer error message
2019-09-01 18:58:36,756 my_logger CRITICAL customer critical message


log文件输出:


2019-09-01 18:58:36,756 my_logger DEBUG customer debug message
2019-09-01 18:58:36,756 my_logger INFO customer info message
2019-09-01 18:58:36,756 my_logger WARNING customer warning message
2019-09-01 18:58:36,756 my_logger ERROR customer error message
2019-09-01 18:58:36,756 my_logger CRITICAL customer critical message


参考文章

Python日志库logging总结-可能是目前为止将logging库总结的最好的一篇文章