app/__init__.py:
1 import logging
from logging.handlers import RotatingFileHandler '''
开发中使用DEBUG级别, 来输出丰富的调试信息.
发布时使用WARN以上级别, 来显示异常信息
log文件存满, 会自动叠加序号, 并产生新的log文件. 如果文件存满了, 就覆盖原先的文件
'''
# 设置日志的记录等级 debug<info<warn<Error<Fatal;
logging.basicConfig(level=logging.DEBUG) # 调试debug级 只记录level以上级别日志信息
# 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件个数上限
file_log_handler = RotatingFileHandler("log/log", maxBytes=1024 * 1024 * 100, backupCount=10)
# 创建日志记录的格式 日志等级 输入日志信息的文件名 行数 日志信息 触发时间
formatter = logging.Formatter('%(levelname)s %(filename)s:%(lineno)d %(message)s %(asctime)s')
# 为刚创建的日志记录器设置日志记录格式
file_log_handler.setFormatter(formatter)
# 为全局的日志工具对象(flask app使用的)添加日志记录器
logging.getLogger().addHandler(file_log_handler)
- 日志等级由低到高:dubug<info<warn<Error<Fatal;
- 各级别区别(后三个,警告、错误、严重错误,这三者应该都在系统运行时检测到了一个不正常的状态):
- debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的东东;
- info 重要,输出信息:用来反馈系统的当前状态给最终用户的;
- warn, 可修复,系统可继续运行下去;
- Error, 可修复性,但无法确定系统会正常的工作下去;
- Fatal, 相当严重,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话后果严重。
- 使用--什么时候使用 info, warn , error ?
- info 用于打印程序应该出现的正常状态信息, 便于追踪定位;
- warn 表明系统出现轻微的不合理但不影响运行和使用;
- error 表明出现了系统错误和异常,无法正常完成目标操作。
项目目录: