From 7cc4e5c1bff5f34e0f20d80801d2bcbbaa6c7512 Mon Sep 17 00:00:00 2001 From: BIT2024 Date: Tue, 20 Aug 2024 17:08:23 +0800 Subject: [PATCH] ADD file via upload --- utils/logger.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 utils/logger.py diff --git a/utils/logger.py b/utils/logger.py new file mode 100644 index 0000000..9d11194 --- /dev/null +++ b/utils/logger.py @@ -0,0 +1,48 @@ +import os +import sys +import logging +from time import strftime + + +# 设置日志格式#和时间格式 +# FMT = '%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s' +FMT = '%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s' +DATEFMT = '%Y-%m-%d %H:%M:%S' + +class MyLog(object): + def __init__(self, log_path, type_='train'): + self.logger = logging.getLogger() + self.formatter = logging.Formatter(fmt=FMT, datefmt=DATEFMT) + self.log_filename = os.path.join(log_path, 'train.log' if type_=='train' else 'test.log') + # self.log_filename = '{0}{1}.log'.format(log_path, strftime("%Y-%m-%d")) + + # 输出到文件 + self.logger.addHandler(self.get_file_handler(self.log_filename)) + + # 输出到控制台 + # self.logger.addHandler(self.get_console_handler()) + + # 设置日志的默认级别 + # 打印DEBUG级别以及以上的日志 + # 级别排序为:CRITICAL > ERROR > WARNING > INFO > DEBUG + self.logger.setLevel(logging.INFO) + + # 输出到文件handler的函数定义 + def get_file_handler(self, filename): + filehandler = logging.FileHandler(filename, encoding="utf-8") + filehandler.setFormatter(self.formatter) + return filehandler + + # 输出到控制台handler的函数定义 + def get_console_handler(self): + console_handler = logging.StreamHandler(sys.stdout) + console_handler.setFormatter(self.formatter) + return console_handler + +def setup_logger(log_path=None, type_='train'): + # 输出日志路径 + if log_path is not None: + os.makedirs(log_path, exist_ok=True) + return MyLog(log_path, type_).logger + log_path = os.path.abspath('.') + '/logs/' + return MyLog(log_path, type_).logger \ No newline at end of file