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_name = log_name[:-4] if log_name.endswith('.log') else log_name
logger = logging.getLogger(logger_name)
logger.setLevel(logging.DEBUG)
log_path = os.path.join(self.log_dir, log_name)
fh = logging.FileHandler(log_path, mode=mode, encoding='utf-8')
fh.setLevel(logging.INFO)
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
formatter = logging.Formatter(
'[%(asctime)s] %(filename)s->%(funcName)s line:%(lineno)d [%(levelname)s]%(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
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')