1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # -*- coding: utf-8 -*-
- # @Author: wangkun
- # @Time: 2023/7/3
- import os
- import logging
- from datetime import time, date
- from logging.handlers import TimedRotatingFileHandler
- class Log:
- logger = None
- handler = None
- @classmethod
- def logging(cls, log_type, crawler):
- # 日志路径
- log_dir = f"./{crawler}/logs/"
- log_path = os.getcwd() + os.sep + log_dir
- if not os.path.isdir(log_path):
- os.makedirs(log_path)
- # 日志文件名
- log_name = f"{date.today()}-{crawler}-{log_type}.log"
- if cls.logger is None:
- cls.logger = logging.getLogger(__name__)
- cls.logger.setLevel(logging.INFO)
- if cls.handler is None:
- cls.handler = TimedRotatingFileHandler(
- os.path.join(log_path, log_name),
- when="midnight",
- interval=1,
- atTime=time(hour=0, minute=0, second=0),
- backupCount=20) # 设置保留的日志文件数量
- formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(filename)s - line %(lineno)d - %(message)s')
- cls.handler.setFormatter(formatter)
- cls.logger.addHandler(cls.handler)
- return cls.logger
- if __name__ == "__main__":
- Log.log()
|