# 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')
python之log模块封装
最新推荐文章于 2024-04-26 14:14:31 发布