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()
|