关闭日程表库中的日志记录

时间:2016-06-29 14:14:19

标签: python python-2.7 logging scheduler

目标:阻止schedule每次运行时都会记录。

背景

我在python项目中使用loggingschedule库。

我的日志文件包含有关Raspberry Pi运行的仪器的物理状态的信息,并且每10秒更新一次。

我使用schedule库来安排定期日志。

Here是我为schedule找到的有限文档。

问题:

每次运行作业时,schedule库都会记录此语句。

2016-06-29 09:01:51,022 INFO: Running job every 10 seconds do update_log() (Last run...

schedule调用的函数是update_log(),这个函数计算每十秒运行的日志中包含的变量并记录它们(例如下面的例子)。

2016-06-29 09:01:51,022 INFO: Dist: 12.3 m Rate: 23.8 cm/s

因为schedule正在生成自己的(相当无用的)日志行,所以它使我实际上尝试的日志记录非常难以阅读。

目标:

阻止schedule记录第一个语句。

1 个答案:

答案 0 :(得分:7)

schedule模块是exclusively using the logger called schedule。您可以使用logging库来disable this logger from writing to your main logger

import logging
logging.getLogger('schedule').propagate = False

如果您根本不想要schedule的日志,您也可以通过将其日志级别设置为高于任何实际日志级别来禁用它。

import logging
logging.getLogger('schedule').setLevel(logging.CRITICAL + 10)

如果您只是希望获得一些消息,请将级别设置为常规logging级别。

从python2.7开始,您也可以使用NullHandler代替。

import logging
logging.getLogger('schedule').propagate = False
logging.getLogger('schedule').addHandler(logging.NullHandler())