optuna.logging.disable_propagation

optuna.logging.disable_propagation()[source]

禁用库日志输出的传播。

请注意,日志传播默认是禁用的。只有在使用 enable_propagation() 时,才需要使用此函数来停止日志传播。

示例

在第二次 optimize 调用时停止将日志传播到根记录器。

import optuna
import logging

optuna.logging.disable_default_handler()  # Disable the default handler.
logger = logging.getLogger()

logger.setLevel(logging.INFO)  # Setup the root logger.
logger.addHandler(logging.FileHandler("foo.log", mode="w"))

optuna.logging.enable_propagation()  # Propagate logs to the root logger.

study = optuna.create_study()

logger.info("Logs from first optimize call")  # The logs are saved in the logs file.
study.optimize(objective, n_trials=10)

optuna.logging.disable_propagation()  # Stop propogating logs to the root logger.

logger.info("Logs from second optimize call")
# The new logs for second optimize call are not saved.
study.optimize(objective, n_trials=10)

with open("foo.log") as f:
    assert f.readline().startswith("A new study created")
    assert f.readline() == "Logs from first optimize call\n"
    # Check for logs after second optimize call.
    assert f.read().split("Logs from second optimize call\n")[-1] == ""
返回类型:

None