| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import logging
- from logging.handlers import TimedRotatingFileHandler
- import os
- from datetime import datetime
- LOG_FORMAT = "%(asctime)s [%(levelname)s] %(message)s"
- def _build_logger(name: str, log_file: str) -> logging.Logger:
- logger_obj = logging.getLogger(name)
- if logger_obj.handlers:
- return logger_obj
- logger_obj.setLevel(logging.DEBUG)
- logger_obj.propagate = False
- console_handler = logging.StreamHandler()
- console_handler.setLevel(logging.INFO)
- file_handler = logging.FileHandler(log_file, encoding="utf-8")
- file_handler.setLevel(logging.DEBUG)
- formatter = logging.Formatter(LOG_FORMAT)
- console_handler.setFormatter(formatter)
- file_handler.setFormatter(formatter)
- logger_obj.addHandler(console_handler)
- logger_obj.addHandler(file_handler)
- return logger_obj
- def get_spider_logger(spider_name: str) -> logging.Logger:
- base_dir = os.path.join("logs", spider_name)
- os.makedirs(base_dir, exist_ok=True)
- today_str = datetime.now().strftime("%Y-%m-%d")
- log_file = os.path.join(base_dir, f"taobao_{today_str}.log")
- return _build_logger(f"spider.{spider_name}", log_file)
- # 获取今天日期字符串
- today_str = datetime.now().strftime("%Y-%m-%d")
- legacy_dir = "logs"
- os.makedirs(legacy_dir, exist_ok=True)
- legacy_file = os.path.join(legacy_dir, f"taobao_{today_str}.log")
- logger = _build_logger("MyLogger", legacy_file)
- # 测试
- # logger.debug("调试信息")
- # logger.info("普通提示信息")
- # logger.warning("警告信息")
- # logger.error("错误信息")
- # logger.critical("严重错误信息")
|