【发布时间】:2013-09-30 17:53:20
【问题描述】:
我正在运行一个 python 脚本来下载数据并对其进行处理。我也在记录一些关键信息。我的问题是,如果日志记录抛出异常,我将如何捕获内存不足异常,因为日志记录写入文件。我是否必须将所有日志记录调用都放在 try 和 except 中?
【问题讨论】:
标签: python linux logging exception-handling ioerror
我正在运行一个 python 脚本来下载数据并对其进行处理。我也在记录一些关键信息。我的问题是,如果日志记录抛出异常,我将如何捕获内存不足异常,因为日志记录写入文件。我是否必须将所有日志记录调用都放在 try 和 except 中?
【问题讨论】:
标签: python linux logging exception-handling ioerror
您可以创建自己的日志记录类,它派生自日志记录,但在 try: ... expect: 子句中调用 log。
【讨论】:
而不是在为时已晚时捕获异常。您可以监控资源使用情况或指定限制。
您是指 RAM 还是磁盘空间?
对于磁盘空间,您可以限制日志的大小,使用旋转日志可能很有用,您可以在其中指定日志的最大大小。请参阅RotatingFileHandler 以及其他日志处理程序。
http://docs.python.org/2/library/logging.handlers.html
在 Linux 上,您可以通过 resource 模块监控进程使用的内存量。
import resource
print 'Process uses:', resource.getrusage(resource.RUSAGE_SELF).ru_maxrss, "kb"
【讨论】: