在Python中实现日志分割可以使用logging模块中的RotatingFileHandler类或TimedRotatingFileHandler类。
- 使用RotatingFileHandler类:
import logging from logging.handlers import RotatingFileHandler logger = logging.getLogger() logger.setLevel(logging.INFO) handler = RotatingFileHandler('app.log', maxBytes=10000, backupCount=5) formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.info('This is a log message')
上面的代码将日志输出到名为’app.log’的文件中,当文件大小达到10KB时,会自动创建一个新的文件,并最多保留5个旧日志文件。
- 使用TimedRotatingFileHandler类:
import logging from logging.handlers import TimedRotatingFileHandler logger = logging.getLogger() logger.setLevel(logging.INFO) handler = TimedRotatingFileHandler('app.log', when='midnight', interval=1, backupCount=5) formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.info('This is a log message')
上面的代码将日志输出到名为’app.log’的文件中,每天午夜时分割日志文件,最多保留5个旧日志文件。