2

我正在使用以下代码记录

logging.basicConfig(filename=os.environ['USERPROFILE']+'\\myApp', level=logging.DEBUG, format='%(asctime)s - [Thread-%(thread)d] - [Process-%(process)d] - %(levelname)s - %(funcName)s - %(lineno)d - %(message)s')

有了这个日志,我们可以实现日志文件的 FileSize 限制,比如如果日志文件大小超过 5MB,那么我想把它写到新文件中。

在 Java 中,我们可以在 logback.xml 中提及如下文件大小

 <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  <maxFileSize>10MB</maxFileSize>
 </triggeringPolicy>
4

1 回答 1

2

使用RotatingFileHandler. 这需要maxBytesbackupCount关键字参数。从文档:

您可以使用maxBytesbackupCount值来允许文件以预定大小翻转。当即将超过大小时,文件将关闭,并以静默方式打开一个新文件以进行输出。只要当前日志文件 maxBytes的长度接近,就会发生翻转;如果maxBytes为零,则永远不会发生翻转。如果 backupCount为非零,系统将通过将扩展名“.1”、“.2”等附加到文件名来保存旧的日志文件。例如,与backupCount5 和 app.log 的基本文件名,您将获得 app.log、app.log.1、app.log.2,直到 app.log.5。写入的文件始终是 app.log。当这个文件被填满后关闭并重命名为app.log.1,如果存在app.log.1、app.log.2等文件,则重命名为app.log.2、app.log.1、app.log.2等文件。 log.3 等。

于 2013-10-01T08:28:58.283 回答