TA_EC/logger.py

48 lines
1.5 KiB
Python
Raw Permalink Normal View History

2025-03-09 16:31:37 +00:00
import logging
import os
from datetime import datetime
class Logger:
2025-03-12 06:26:35 +00:00
def __init__(self, log_dir):
self.log_dir = log_dir
os.makedirs(log_dir, exist_ok=True)
# 日志文件路径
log_file = os.path.join(log_dir, "training.log")
2025-03-09 16:31:37 +00:00
2025-03-12 06:26:35 +00:00
# 创建日志记录器
self.logger = logging.getLogger("FedKD")
self.logger.setLevel(logging.DEBUG)
2025-03-09 16:31:37 +00:00
2025-03-12 06:26:35 +00:00
# 文件处理器(包含详细信息)
2025-03-09 16:31:37 +00:00
file_handler = logging.FileHandler(log_file)
file_formatter = logging.Formatter(
"%(asctime)s - %(levelname)s - %(message)s"
)
file_handler.setFormatter(file_formatter)
2025-03-12 06:26:35 +00:00
# 控制台处理器(简洁输出)
2025-03-09 16:31:37 +00:00
console_handler = logging.StreamHandler()
console_formatter = logging.Formatter("%(message)s")
console_handler.setFormatter(console_formatter)
self.logger.addHandler(file_handler)
self.logger.addHandler(console_handler)
2025-03-12 06:26:35 +00:00
def info(self, message):
self.logger.info(message)
def debug(self, message):
self.logger.debug(message)
def warning(self, message):
self.logger.warning(message)
def error(self, message):
self.logger.error(message)
2025-03-09 16:31:37 +00:00
2025-03-12 06:26:35 +00:00
def create_run_dir(base_dir="runs"):
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
run_dir = os.path.join(base_dir, timestamp)
os.makedirs(run_dir, exist_ok=True)
return run_dir