logging模块有两种使用方式
1.直接调用函数
2.使用logging提供的四大组件
日志级别
DEBUG 10 最详细的信息,开发过程中用于诊断问题
INFO 20 详细日志信息仅次于debug,记录关键节点的信息
WARNING 30(默认) 当前不期望的事情发生
ERROR 40 发生错误问题导致某些观念跟那个不能正常使用
CRITICAL 50 发生严重错误导致程序不能继续运行
基本函数:
basicConfig
debug
info
warning
error
critical
下面举一个例子
import logging
logging.basicConfig(format='%(levelname)s:%(message)s',level=logging.DEBUG,datefmt='%Y-%m-%d %H:%M:%S')
logging.debug('Python message format Debug')
logging.info('Python message format Info')
logging.warning('Python message format Warning')
上述代码解释:basicConfig中,format是指定格式,levelname表示日志等级,默认是warning,只有warning以及以上的才能被输出,如果是DEBUG,那么所有的等级都可以被输出,上面是定义为DEBUG,message代表输出的内容
logger四大组件
日志器 logger
处理器 handler
过滤器 filter
格式期 formatter
下面介绍一下四大组件的简单使用
import logging
#创建logger对象
logger=logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
#创建文件处理器对象
file_handler=logging.FileHandler('my_log_file.log')
file_handler.setLevel(logging.INFO)
#创建控制台处理对象
console_handler=logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
#创建过滤器对象
filter_obj=logging.Filter(name='my_filter')
#创建格式化器对象
formatter=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
#将处理器添加到logger对象中
logger.addHandler(file_handler)
logger.addHandler(console_handler)
#将过滤器添加到处理器中
file_handler.addFilter(filter_obj)
console_handler.setFormatter(formatter)
logger.debug('this is a debug message')
logger.info('this is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
输出:
上述代码创建了一个名为 my_logger
的 logger 对象,并将其级别设置为 DEBUG。然后分别创建了一个文件处理器对象和一个控制台处理器对象,用于将日志信息记录到指定的文件和控制台上。接着创建了一个名为 my_filter
的过滤器对象,用于过滤某些特定的日志信息。最后创建了一个格式化器对象,用于在输出日志信息时指定显示格式。
日志信息可以通过调用 logger 对象的不同方法来发送,比如 logger.debug()、logger.info() 等等。在发送日志信息时,其级别需要与 logger 对象的级别匹配,才能被正确记录。如果某个处理器或过滤器对象是有级别的,则只有当日志信息级别大于等于该对象的级别时,才会被该对象处理。
以上就是python 中logger模块的介绍!