chat / src /utils /logger_handler.py
Killer-8's picture
Upload 10 files
c45dff0 verified
Raw
History Blame Contribute Delete
1.58 kB
import logging
from utils.path_tool import get_abs_path
import os
from datetime import datetime
# 日志保存的根目录
LOG_ROOT = get_abs_path("logs")
# 确保日志的目录存在
os.makedirs(LOG_ROOT, exist_ok=True)
# 日志的格式配置 error info debug
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)
# 避免重复添加Handler
if logger.handlers:
return logger
# 控制台Handler
console_handler = logging.StreamHandler()
console_handler.setLevel(console_level)
console_handler.setFormatter(DEFAULT_LOG_FORMAT)
logger.addHandler(console_handler)
# 文件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.info("信息日志")
logger.error("错误日志")
logger.warning("警告日志")
logger.debug("调试日志")