agent_proj/utils/logger_handler.py

48 lines
1.2 KiB
Python

import logging
import os
from utils.path_tool import get_abs_path
from datetime import datetime
LOG_ROOT = get_abs_path("logs")
os.makedirs(LOG_ROOT, exist_ok=True)
DEFAULT_LOG_FORMAT = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s'
)
def get_logger(
name: str = "Agent",
console_level: int = logging.INFO,
file_level: int = logging.DEBUG,
log_file=None,
) -> logging.Logger:
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
# 避免重复添加logger
if logger.handlers:
return logger
console_handler = logging.StreamHandler()
console_handler.setLevel(console_level)
console_handler.setFormatter(DEFAULT_LOG_FORMAT)
logger.addHandler(console_handler)
if not log_file:
log_file = os.path.join(LOG_ROOT, f"{name}_{datetime.now().strftime('%Y%m%d')}.log")
file_handler = logging.FileHandler(log_file, encoding='utf-8')
file_handler.setLevel(file_level)
file_handler.setFormatter(DEFAULT_LOG_FORMAT)
logger.addHandler(file_handler)
return logger
logger = get_logger()
if __name__ == '__main__':
logger = get_logger()
logger.info("info")
logger.error("Error")