python 日志 模块

 

由于这些天做接口测试所以把以前的东西复习一下,以下是我日志的配置

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)

 








posted @ 2018-09-24 22:51  mahaining  阅读(173)  评论(0编辑  收藏  举报