35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
import logging
|
|
import os
|
|
from datetime import datetime
|
|
from config import config
|
|
|
|
class Logger:
|
|
def __init__(self):
|
|
os.makedirs(config.log_dir, exist_ok=True)
|
|
log_file = os.path.join(
|
|
config.log_dir,
|
|
f"train_{datetime.now().strftime('%Y%m%d_%H%M%S')}.log"
|
|
)
|
|
|
|
self.logger = logging.getLogger(__name__)
|
|
self.logger.setLevel(config.log_level)
|
|
|
|
# 文件输出
|
|
file_handler = logging.FileHandler(log_file)
|
|
file_formatter = logging.Formatter(
|
|
"%(asctime)s - %(levelname)s - %(message)s"
|
|
)
|
|
file_handler.setFormatter(file_formatter)
|
|
|
|
# 控制台输出
|
|
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)
|
|
|
|
def log(self, level, message):
|
|
getattr(self.logger, level)(message)
|
|
|
|
logger = Logger() |