由于这些天做接口测试所以把以前的东西复习一下,以下是我日志的配置
logging 模块介绍
setLevel:设置输入的日志级别
Formatter :设置输入日志格式
FileHandler:将日志信息输出到文件上
StreamHandler:指定输入到控制台函数
addHandler:日志添加
logging中 DEBUG 是记录所有状态的错误信息的,特别注意WARNING 只记录错误以上的信息
logging.handlers.TimedRotatingFileHandler(logpath, when='d', interval=1, backupCount=5,atTime=datetime.time(0, 0, 0, 0),encoding='utf-8') 切割日志 每天产生一个带日期的文件
日志格式函数:
%(levelno)s:打印日志级别的数值
%(levelname)s:打印日志级别的名称
%(pathname)s:打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s:打印当前执行程序名
%(funcName)s:打印日志的当前函数
%(lineno)d:打印日志的当前行号
%(asctime)s:打印日志的时间
%(thread)d:打印线程ID
%(threadName)s:打印线程名称
%(process)d:打印进程ID
%(message)s:打印日志信息
日志等级:
FATAL:致命错误
CRITICAL:特别糟糕的事情,如内存耗尽、磁盘空间为空,一般很少使用
ERROR:发生错误时,如IO操作失败或者连接问题
WARNING:发生很重要的事件,但是并不是错误时,如用户登录密码错误
INFO:处理请求或者状态变化等日常事务
DEBUG:调试过程中使用DEBUG等级,如算法中每个循环的中间状态
-----------------------------------------------------------------------------------------------------
1 # 日志配置 2 logdir = os.path.join(basedir, 'log') 3 logpath =os.path.join(logdir, 'apiall.log') 4 error =os.path.join(logdir, 'apierror.log') 5 logger = logging.getLogger('apiteststudy') 6 # 打印全部信息 7 logger.setLevel(logging.DEBUG) 8 9 # 再创建一个handler,用于输出到控制台 10 ch = logging.StreamHandler() 11 ch.setLevel(logging.DEBUG) 12 13 fh = logging.handlers.TimedRotatingFileHandler(logpath, when='d', interval=1, backupCount=5,atTime=datetime.time(0, 0, 0, 0),encoding='utf-8') 14 # interval是时间间隔,backupCount是备份文件的个数,如果超过这个个数,就会自动删除,when是间隔的时间单位,单位有以下几种: 15 # S 秒 16 # M 分 17 # H 小时、 18 # D 天、 19 # W 每星期(interval==0时代表星期一) 20 # midnight 每天凌晨 21 # fh = logging.FileHandler(logpath, encoding='utf-8') 22 datafmt = "%Y-%m-%d %H:%M:%S" 23 fm = logging.Formatter(fmt='%(asctime)s %(name)-s %(module)-s[line:%(lineno)d] %(levelname)-s -- %(message)s',datefmt=datafmt) 24 fh.setFormatter(fm) 25 ch.setFormatter(fm) 26 logger.addHandler(fh) #打印到文件 27 logger.addHandler(ch) #打印到控制台 28 logging.getLogger("requests").setLevel(logging.WARNING) 29 # # 打印错误信息 30 f_handler = logging.handlers.TimedRotatingFileHandler(error, when='D', interval=1, backupCount=5,atTime=datetime.time(0, 0, 0, 0),encoding='utf-8') 31 f_handler.setLevel(logging.ERROR) 32 datafmt = "%Y-%m-%d %H:%M:%S" 33 fm = logging.Formatter(fmt='%(asctime)s %(name)-s %(module)-s[line:%(lineno)d] %(levelname)-s -- %(message)s',datefmt=datafmt) 34 f_handler.setFormatter(fm) 35 logger.addHandler(f_handler)