![54a4be1a80f7ce1f70832ae6a3d5783c.png](https://i-blog.csdnimg.cn/blog_migrate/4042c829ad6313ade53dca956a1e9732.jpeg)
1.1、logging模块
Python内置的日志模块,日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为 等级 或 严重性。
正常的项目想看 程序状态变化,尽量不要用print(断点调试/日志)。任何语言、任何程序都要记录日志。
Python中的日志要么输出至控制台,要么保存至文件。
1.2、日志级别
CRITICAL = 50 #FATAL = CRITICAL
ERROR = 40
WARNING = 30 #WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0 #不设置
1.3、默认级别为warning,默认打印到终端
import logging
logging.debug('调试debug')
logging.info('消息info')
logging.warning('警告warn')
logging.error('错误error')
logging.critical('严重critical')
'''
WARNING:root:警告warn
ERROR:root:错误error
CRITICAL:root:严重critical
'''
1.4、为logging模块指定全局配置,针对所有logger有效,控制打印到文件中
可在logging.basicConfig()函数中通过具体参数来更改logging模块默认行为,可用参数有
(1)filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。
(2)filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
(3)format:指定handler使用的日志显示格式。
(4)datefmt:指定日期时间格式。
(5)level:设置rootlogger(后边会讲解具体概念)的日志级别
(6)stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。
可指定的格式有:
![145bcf9e24c9c22de4b4f3bd02cfcfca.png](https://i-blog.csdnimg.cn/blog_migrate/1ee0e72fbdadd644dc8b9dea6e5ff1b2.jpeg)
实际应用
执行程序为
import logging
logging.basicConfig(filename='access.log',
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='请叫我龙哥-v-%Y*%m*%d %H:%M:%S %p',