日志介绍
- 日志概念:用于记录系统运行时的信息,是对一个事件的记录;
- 日志作用
- 调试程序
- 可以用来判断程序是否运行正常
- 可以用来分析和定位问题
- 可以用来做用户行为分析和数据统计
- 日志级别
- 调试级别DEBUG:记录一些代码的调试信息;
- 信息级别INFO:记录一些正常的操作信息;
- 警告级别Warring:记录一些警告日志信息,但不会影响系统的功能及正常运行;某些功能使用时提示警告了
- 错误级别Error:记录系统运行时的错误信息,说明系统的某些功能不能正常运行;某个功能不能使用error
- 严重错误级别critical:记录系统运行时的严重错误信息,有可能导致整个系统都不能运行。系统崩溃就是critical
日志模块logging
日志模块的使用
- 导入日志模块,Python自带
import logging - 使用日志模块的方法
- 日志输出
logging.info("msg") - 日志级别设置:
logging.basicConfig(level=logging.DEBUG) - 日志格式设置
logging.basicConfig(level=logging.DEBUG,format=fmt)- 格式样式设置:
fmt = '%(asctime)s %(levelname)s [%(name)s] - %(message)s'
- 格式样式设置:
- 日志输出到文件设置:
logging.basicConfig(filename='log/log01.log',level=logging.DEBUG,format=fmt)
- 日志输出
importlogging# 定义一个格式化的字符串# 时间:%(asctime)s 文本形式日志级别: %(levelname)s# 调用日志输出函数模块的完整路径名:%(filename)s,语句所在代码行:%(lineno)d#用户输出的信息:%(message)sfmt='%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s'#设置日志级别、日志格式、日志输出到文件logging.basicConfig(level=logging.DEBUG,format=fmt.filename='log/log01.log')# 调用logging模块输出日志。会根据级别输出不同日志,默认warninglogging.debug("这是调试级别日志")logging.info("这是信息级别的日志")logging.warning("这是警告级别日志")logging.error("这是错误级别的日志")logging.critical("这是严重错误级别日志")日志组件
- 日志器 logger : 是程序的入口,主要用来记录日志的信息
- 处理器 handler : 决定了日志的输出目的地
- 格式器 formatter :决定了日志的输出格式
- 示例:
importloggingimportlogging.handlers#1.创建日志器,设置级别logger=logging.getLogger()logger.setLevel(logging.DEBUG)#2.1创建处理器,设置级别,输出到控制台handler_console=logging.StreamHandler()handler_console.setLevel(logging.DEBUG)#2.2创建处理器,设置级别,输出到文件handler_file=logging.handlers.TimedRotatingFileHandler("log/tlog.log",when='M',interval=1,backupCount=3)handler_file.setLevel(logging.DEBUG)#3设置格式fmt='%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s'#3创建格式器formatter=logging.Formatter(fmt=fmt)#4将格式器添分别加到两个处理器(文件和控制台)handler_file.setFormatter(formatter)handler_console.setFormatter(formatter)#5将处理器添加到日志器,两个处理器logger.addHandler(handler_console)logger.addHandler(handler_file)#6日志输出logger.debug("~~这是debug message~~~")