File size: 1,582 Bytes
c45dff0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 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("调试日志")
|