Python---logging日志模块

1.说明

   官方文档:https://docs.python.org/zh-cn/3/howto/logging.html

   什么时候使用日志?

   对于简单的日志使用来说日志功能提供了一系列便利的函数。它们是 debug()info()warning()error() 和 critical()。想要决定何时使用日志,请看下表,其中显示了对于每个通用任务集合来说最好的工具。

 

 

 

2.日志级别

 

 

 

3.logging基础使用

 

# 日志记录模块
import logging

# 日志的默认输入级别为 warning,会记录 warning,error,critical logging.debug(
'------debug------') # 细节信息,仅当诊断问题时适用 logging.info('------info------') # 确认程序按预期运行 logging.warning('------warning------') # 警告级别--->表明有已经或即将发生的意外。程序仍按预期进行 logging.error('------error------') # 由于严重的问题,程序的某些功能已经不能正常执行 logging.critical('------critical-----') # 严重的错误,表明程序已不能继续执行

运行结果:

 

 

 

# 日志记录模块
import logging

# 配置日志的记录级别 logging.basicConfig(level
=logging.DEBUG) logging.debug('------debug------') logging.info('------info------') logging.warning('------warning------') logging.error('------error------') logging.critical('------critical-----')

运行结果:

 

 

 

# 日志记录模块
import logging

'''
  日志的默认记录级别为 警告级别warning ,会记录waring,error,critical 级别的日志
  配置日志的记录级别 level=logging.DEBUG   配置日志的模式 filemode='a' 追加模式
  将日志记录到文件中 filename='study.log'
'''
logging.basicConfig(filename='study1.log',filemode='a',level=logging.DEBUG)

logging.debug('------debug------')       
logging.info('------info------')       
logging.warning('------warning------')   
logging.error('------error------')      
logging.critical('------critical-----')  

运行结果:

此时,我们会发现,当把日志记录保存到日志文件中后,在控制台中就不在进行打印了

 

 

4.logging实战,保存到文件中且打印在控制台中

# 日志保存到文件中并打印在控制台中
# 使用日志模块的 handlers

import logging

# 创建日志对象
logger = logging.getLogger("api")
logger.setLevel(logging.DEBUG)      # 设置日志级别

stream = logging.StreamHandler()    # 创建 stream handler 类的实例化对象
logger.addHandler(stream)           # 将输出流对象添加到 logger 对象中

# 创建文件处理的handler
file_handler = logging.FileHandler(filename='study2.log')
file_handler.setLevel(logging.WARNING)                        # 设置文件的日志级别
logger.addHandler(file_handler)                               # 将文件处理添加到 logger 对象中

logger.debug('--debug--')
logger.info('--info--')
logger.warning('--warning--')
logger.error('--error--')
logger.critical('--critical--')

运行结果:

 

 

 5.添加日志格式

  官方文档:https://docs.python.org/zh-cn/3/library/logging.html#logrecord-attributes

# 日志保存到文件中并打印在控制台中
# 使用日志模块的 handlers

import logging

# 创建日志对象
logger = logging.getLogger("api")
logger.setLevel(logging.DEBUG)  # 设置日志级别

# 创建格式  [%(asctime)s]-->创建时间   [%(levelname)s]-->记录级别    %(message)s-->记入日志的消息
format_sz = logging.Formatter("[%(asctime)s] [%(levelname)s] %(message)s")

# 创建 stream handler 类的实例化对象
stream = logging.StreamHandler()
stream.setLevel(logging.INFO)   # 设置文件的日志级别
stream.setFormatter(format_sz)  # 设置日志格式
logger.addHandler(stream)       # 将输出流对象添加到 logger 对象中

# 创建文件处理的handler
file_handler = logging.FileHandler(filename='study2.log')
file_handler.setLevel(logging.WARNING)   # 设置文件的日志级别
file_handler.setFormatter(format_sz)     # 设置日志格式
logger.addHandler(file_handler)          # 将文件处理添加到 logger 对象中

logger.debug('--debug--')
logger.info('--info--')
logger.warning('--warning--')
logger.error('--error--')
logger.critical('--critical--')

运行结果:

 

posted @ 2021-03-16 10:18  Z_sun  阅读(70)  评论(0编辑  收藏  举报