optuna.logging.enable_propagation

optuna.logging.enable_propagation()[source]

ライブラリのログ出力を伝播させる機能を有効にします。

ルートロガーが設定されている場合、Optuna のデフォルトハンドラを無効にしないと、 ログが二重に出力される可能性があります。

使用例

ログをファイルに保存するため、すべてのログ出力をルートロガーに伝播させます。

import optuna
import logging

logger = logging.getLogger()

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

optuna.logging.enable_propagation()  # ログをルートロガーに伝播
optuna.logging.disable_default_handler()  # sys.stderr へのログ出力を停止

study = optuna.create_study()

logger.info("最適化を開始します")
study.optimize(objective, n_trials=10)

with open("foo.log") as f:
    assert f.readline().startswith("A new study created")
    assert f.readline() == "最適化を開始します\n"
Return type:

None