import logging import datetime import os import inspect class LogHandler: def __init__(self, name='autotest_logger', log_dir='../TestLog'): self.logger = logging.getLogger(name) self.logger.setLevel(logging.DEBUG) if not os.path.exists(log_dir): os.makedirs(log_dir) today = datetime.datetime.now().strftime("%Y-%m-%d") log_file = os.path.join(log_dir, f"{today}_log.log") file_handler = logging.FileHandler(log_file) formatter = logging.Formatter( '%(asctime)s [%(levelname)s] in %(module)s (line %(lineno)d): %(message)s' ) file_handler.setFormatter(formatter) self.logger.addHandler(file_handler) def info(self, message, *args, **kwargs): frame = inspect.stack()[1] module = inspect.getmodule(frame[0]) title = f"{module.__name__}" formatted_message = f"{title}\n{message}" self.logger.info(formatted_message, *args, **kwargs) def error(self, message, *args, **kwargs): frame = inspect.stack()[1] module = inspect.getmodule(frame[0]) title = f"{module.__name__}" formatted_message = f"{title}\n{message}" self.logger.error(formatted_message, *args, **kwargs) # 使用示例: log_dir = '../TestLog' # 指定日志存放目录 logger = LogHandler(name='autotest_logger', log_dir=log_dir)