关闭计划库中的日志记录

Turn off logging in schedule library

Objective: 防止 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(),这个函数每十秒计算一次log I 运行中包含的变量并记录下来(下面的例子)

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

因为 schedule 正在生成它自己的(相当无用的)日志行,这使得我实际上尝试做的日志很难阅读。

目标:

阻止 schedule 记录第一个语句。

schedule 模块是 exclusively using the logger called schedule. You can use the logging library to 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())