python日志添加功能,主要记录程序运行中的日志,统一收集并分析
转自:https://www.cnblogs.com/jsondai/p/9663633.html
一、日志的级别
debug(调试信息) info() warning(警告信息)error(错误信息) critical(致命信息) 从左往右越来越严重
日志等级(level) | 描述 |
---|---|
DEBUG | 最详细的日志信息,典型应用场景是 问题诊断 |
INFO | 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作 |
WARNING | 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的 |
ERROR | 由于一个更严重的问题导致某些功能不能正常运行时记录的信息 |
CRITICAL | 当发生严重错误,导致应用程序不能继续运行时记录的信息 |
注意,系统只显示warning(警告信息)级别以上的日志,例如我们输入一下代码:
import logging logging.debug('这是个debug级别的信息')#输出时被过滤掉了 logging.info('这是个info级别的信息')#输出时被过滤掉了 logging.warning('这是个warning级别的信息') logging.error('这是个error级别的信息') logging.critical('这是个critical级别的信息')
控制台输出
代码写的是5行数据,实际在控制台只有3行,那是因为系统默认输出 warning(警告)及以上的日志。
如果需要全部展示,需要调用
logging.basicConfig(level=logging.DEBUG) #basicConfig基础配置 可以输入关键字参数,level是等级的意思 logging.DEBUG级别必须大写 如果是调用函数就需要小写
在level那里展示指定级别。 加上 logging.basicConfig 之后运行,结果如下,能全部展示出来了
二、日志格式化输出
将日志输出到控制台或者文件中
fp = logging.FileHandler('a.txt', encoding='utf-8') #将日志记录到文件中 fs = logging.StreamHandler() #将日志输出到控制台
放在handler中进行调用
import logging LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s" # 日志格式化输出 DATE_FORMAT = "%m/%d/%Y %H:%M:%S %p" # 日期格式 fp = logging.FileHandler('a.txt', encoding='utf-8') fs = logging.StreamHandler() logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT, handlers=[fp, fs]) # 调用 logging.debug("This is a debug log.哈哈") logging.info("This is a info log.") logging.warning("This is a warning log.") logging.error("This is a error log.") logging.critical("This is a critical log.")
控制台和文件中就都能展示日志了