logging模块学习

1、创建句柄

2、句柄添加格式化输出

3、句柄添加报警级别

4、logger添加句柄

import sys
import os
#为了防止命令行执行py文件报错
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
import logging
import time
from logging.handlers import TimedRotatingFileHandler


class Logger(object):
def __init__(self,logger_name='interfaceTest'):
self.logger = logging.getLogger(logger_name)
logging.root.setLevel(logging.NOTSET)
self.log_file_name = 'test.log'
self.backip_count = 5
#日志输出级别
self.console_output_level = 'WARN'
self.file_output_level = 'INFO'
#日子输出格式
self.formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

def get_logger(self):
"""在logger中添加日子句柄并返回,如果logger已有句柄,则直接返回"""
if not self.logger.handlers:
console_handle = logging.StreamHandler()
console_handle.setFormatter(self.formatter)
console_handle.setLevel(self.console_output_level)
self.logger.addHandler(console_handle)


#每天新建一个日志文件,最多保留backup_count份
file_handle = TimedRotatingFileHandler(".\\logger\\"+self.log_file_name,
when='D',
interval=1,
backupCount=self.backip_count,
delay=True,
encoding='UTF-8'
)
file_handle.setFormatter(self.formatter)
file_handle.setLevel(self.file_output_level)
self.logger.addHandler(file_handle)
return self.logger

logger = Logger().get_logger()

posted on 2018-03-26 14:03  Overtimer-加班哥  阅读(159)  评论(0)    收藏  举报

导航