为什么要切分日志?
将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会越来越庞大,进而影响系统的性能。因此,有必要对日志文件按某种条件进行切分。切分日志使得日志更加可读且便于处理。
日志切割方法:
当一个日志文件达到触发条件后,对日志文件进行重命名,之后再新建原来名称的日志文件(此时就是空文件了),新产生的日志就写入新的日志文件。
分割日志的触发条件:
大小、日期,或者大小加上日期。
日志回滚:
当分割的日志文件达到指定数目的上限个数时,最老的日志文件就会被删除。日志回滚的目的是为了防止程序产生的日志过多过大,在情况允许的条件下只保留最新的一些日志。
logging库提供了2个可以用于日志滚动的class,一个是RotatingFileHandler,它主要是根据日志文件的大小进行滚动;另一个是TimeRotatingFileHandler,它主要是根据时间进行滚动。在实际应用中,通常根据时间进行滚动。
基于时间切分
使用TimedRotatingFileHandler处理器:
TimedRotatingFileHandler(filename [,when [,interval [,backupCount]]])
其中参数的含义和取值为:
- filename 是输出日志文件名的前缀,比如lo