python之log模块封装

mac2024-01-23  38

# CreateTime: 2019/5/8 20:03 # Author: li jianhua import logging import time import os class Log(object): def __init__(self, log_dir): """ 指定保存日志的文件路径,日志级别,以及调用文件将日志存入到指定的文件中 """ self.log_dir = log_dir if not os.path.exists(self.log_dir): os.mkdir(self.log_dir) def get_log(self, log_name, mode='a'): # 创建一个logger logger_name = log_name[:-4] if log_name.endswith('.log') else log_name logger = logging.getLogger(logger_name) logger.setLevel(logging.DEBUG) # 创建一个handler,用于写入日志文件 log_path = os.path.join(self.log_dir, log_name) fh = logging.FileHandler(log_path, mode=mode, encoding='utf-8') fh.setLevel(logging.INFO) # 创建一个handler,用于输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.INFO) # 定义handler的输出格式 formatter = logging.Formatter( '[%(asctime)s] %(filename)s->%(funcName)s line:%(lineno)d [%(levelname)s]%(message)s') fh.setFormatter(formatter) ch.setFormatter(formatter) # 给logger添加handler logger.addHandler(fh) logger.addHandler(ch) # 关闭打开的文件 fh.close() ch.close() return logger log_dir = r'/home/gzblue/ljh/virtual_proj/smoke/region/chengdu/output_data/log_data' base_log = Log(log_dir) check_config_logger = base_log.get_log('check_config.log', mode='w') background_preprocess_logger = base_log.get_log('background_preprocess.log', mode='w') main_logger = base_log.get_log('main.log', mode='a') if __name__ == '__main__': log_dir = r'log_data' log_name = r'test.log' log = Log(log_dir) logger = log.get_log(log_name) logger.info('This is a') logger.info('This is b') logger.warning('This is c')
最新回复(0)