optuna.logging.disable_propagation

optuna.logging.disable_propagation()[source]

ライブラリのログ出力の伝播を無効化します。

デフォルトではログの伝播は無効化されています。 enable_propagation() を使用する際に ログの伝播を停止したい場合のみ、この関数を使用してください。

使用例

2回目の最適化実行時にルートロガーへのログ伝播を停止します。

import optuna
import logging

optuna.logging.disable_default_handler()  # デフォルトのハンドラを無効化します。
logger = logging.getLogger()

logger.setLevel(logging.INFO)  # ルートロガーを設定します。
logger.addHandler(logging.FileHandler("foo.log", mode="w"))

optuna.logging.enable_propagation()  # ログをルートロガーに伝播します。

study = optuna.create_study()

logger.info("1回目の最適化実行時のログ")  # ログはログファイルに保存されます。
study.optimize(objective, n_trials=10)

optuna.logging.disable_propagation()  # ルートロガーへのログ伝播を停止します。

logger.info("2回目の最適化実行時のログ")
# このログは保存されません。
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"
    # 最適化実行後のログを確認します。
    assert f.read().split("Logs from second optimize call\n")[-1] == ""
Return type:

None