2013-10-01 42 views
2

我使用下面的代码登录如何在Python中正确处理记录器文件大小?

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') 

有了这个记录山楂我们可以实现的记录文件的大小限制,就像如果日志文件的大小超过5MB的话,我想它写在新文件。

在Java中,我们可以提到的文件大小象下面这样logback.xml

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

回答

2

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

您可以使用maxBytesbackupCount值,以允许该文件 侧翻在规定的尺寸。当尺寸将大于 超出时,该文件将关闭,并为 输出静默打开一个新文件。只要当前日志文件的长度接近 maxBytes,就会发生翻转;如果maxBytes为零,则不会发生翻转。如果 backupCount非零,则系统将通过 将旧的日志文件保存到文件名后附加扩展名“.1”,“.2”等。对于 示例,其中backupCount为5,基本文件名为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.3等 。

相关问题