python中的logger模块客人已用于输出日志,可以用于设置输出日志的等级,日志保存的路径,日志文件的回滚。相比于print, 具有以下的优点:
- 可以设置日志的等级,而不必显示的调用大量的调试信息。
- print将所有的信息都输出到标准的输出中。而logging则可以有开发者决定将信息输出到什么地方,以及怎么输出。
logging模块包括logger, hander, filter, farmatter四个部分:
1.logger :记录仪,用于设置日志的采集(考日语直接调用的一个日志的接口)
2.Hander: 处理器,用于将日志记录发送到合适的路径(将logging中发送来的信息
进行准确的分类,然后送到正确的位置)
每个Handler同样有一个日志级别,一个logger可以拥有多个handler。
也就是说logger可以根据不同的日志级别将日志传递给不同的handler。
当然也可以相同的级别传递给多个handlers这就根据需求来灵活的设置了。
3.Filter: 过滤器,提供更好的力度控制,他可以决定输出那些日志记录
4.Formatter: 格式化器,指明了最终输出的日志的格式(指定了最终某条记录
打印的格式布局)
Formatter会将传递来的信息拼接成一条具体的字符串,
默认情况下Format只会将信息%(message)s直接打印出来。
logging.getLogger(name):获取logger对象,如果不指定name则返回root对象,多次使用相同的name调用getLogger方法返回同一个logger对象。
logging.INFO: 表示loggger的日志的等级
设置级别 logger.setLevel(logging.DEBUG),Logging中有NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL这几种级别,日志会记录设置级别以上的日志
python中的配置logging有三种方式:
- logging.basicConfig()函数:
- 使用基本的配置文件俩配置logging,使用fileConfig()函数读取配置文件。
- 使用字典的方式来写配置信息,然后使用dictConfig()函数来配置logging。
logging.Formatter(stream=None)函数:用于输出日期格式
logging.StreamHandler()函数:日志信息会输出到指定的stream中,如果stream为空则默认输出到sys.stderr
logging.FileHandler()函数:将日志信息输出到磁盘文件上。