我有一个程序,我在其中编写日志作为信息和调试。
由于调试包含对慢速函数的调用,即使我将调试设置为INFO,我的程序也运行缓慢。
是否可以从计算中完全跳过这些行?
在下一个示例中,必须在执行信息日志之前传递10秒。
import logging.handlers
import sys
import time
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logging_stream_handler = logging.StreamHandler(sys.stdout)
logging_stream_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s --- %(message)s'))
logger.addHandler(logging_stream_handler)
logger.debug("aaa", time.sleep(10))
logger.debug("bbb")
logger.info("ccc")
答案 0 :(得分:1)
您可以使用isEnabledFor
方法检查记录器是否已启用此类级别:
if logger.isEnabledFor(logging.DEBUG):
logger.debug("aaa", time.sleep(10))
logger.debug("bbb")
答案 1 :(得分:0)
您不应该在调试命令中记录。如果必须,那么为了跳过它,您必须分支您的代码。
import logging.handlers
import sys
import time
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logging_stream_handler = logging.StreamHandler(sys.stdout)
logging_stream_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s --- %(message)s'))
logger.addHandler(logging_stream_handler)
if logger.isEnabledFor(logging.DEBUG):
logger.debug("aaa", time.sleep(10))
logger.debug("bbb")
logger.info("ccc")