get_logger.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import logging
  2. from logging.handlers import TimedRotatingFileHandler
  3. import os
  4. def setup_logger(file_name):
  5. # 获取一个日志记录器
  6. logger = logging.getLogger(file_name)
  7. # 设置日志级别
  8. logger.setLevel(logging.DEBUG) # 设置最低的日志级别为DEBUG
  9. # 创建一个文件处理器,并设置日志文件的路径
  10. # file_handler = logging.FileHandler(f"./logs/{file_name}.log", encoding="utf-8")
  11. if not os.path.exists("./logs"):
  12. os.makedirs("./logs")
  13. log_file_path = os.path.join("./logs", f"{file_name}.log")
  14. file_handler = TimedRotatingFileHandler(
  15. filename=log_file_path,
  16. when="midnight", # 每天午夜轮转
  17. interval=1, # 每隔1天轮转一次
  18. encoding="utf-8"
  19. )
  20. # 设置文件处理器的日志级别
  21. file_handler.setLevel(logging.DEBUG)
  22. # 创建一个控制台处理器(可选,用于同时输出到控制台)
  23. console_handler = logging.StreamHandler()
  24. console_handler.setLevel(logging.DEBUG)
  25. # 创建一个格式化器,并设置日志条目的格式
  26. formatter = logging.Formatter('%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(message)s')
  27. # 将格式化器添加到处理器
  28. file_handler.setFormatter(formatter)
  29. console_handler.setFormatter(formatter)
  30. # 将处理器添加到日志记录器
  31. logger.addHandler(file_handler)
  32. logger.addHandler(console_handler)
  33. return logger