optuna.logging

optuna.logging.get_verbosity()int[source]

Return the current level for the Optuna’s root logger.

Returns

Logging level, e.g., optuna.logging.DEBUG and optuna.logging.INFO.

Note

Optuna has following logging levels:

  • optuna.logging.CRITICAL, optuna.logging.FATAL

  • optuna.logging.ERROR

  • optuna.logging.WARNING, optuna.logging.WARN

  • optuna.logging.INFO

  • optuna.logging.DEBUG

optuna.logging.set_verbosity(verbosity: int)None[source]

Set the level for the Optuna’s root logger.

Parameters

verbosity – Logging level, e.g., optuna.logging.DEBUG and optuna.logging.INFO.

optuna.logging.disable_default_handler()None[source]

Disable the default handler of the Optuna’s root logger.

Example

Stop and then resume logging to sys.stderr.

import optuna

study = optuna.create_study()

# There are no logs in sys.stderr.
optuna.logging.disable_default_handler()
study.optimize(objective, n_trials=10)

# There are logs in sys.stderr.
optuna.logging.enable_default_handler()
study.optimize(objective, n_trials=10)
# [I 2020-02-23 17:00:54,314] Trial 10 finished with value: ...
# [I 2020-02-23 17:00:54,356] Trial 11 finished with value: ...
# ...
optuna.logging.enable_default_handler()None[source]

Enable the default handler of the Optuna’s root logger.

Please refer to the example shown in disable_default_handler().

optuna.logging.disable_propagation()None[source]

Disable propagation of the library log outputs.

Note that log propagation is disabled by default.

optuna.logging.enable_propagation()None[source]

Enable propagation of the library log outputs.

Please disable the Optuna’s default handler to prevent double logging if the root logger has been configured.

Example

Propagate all log output to the root logger in order to save them to the file.

import optuna
import logging

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.
optuna.logging.disable_default_handler()  # Stop showing logs in sys.stderr.

study = optuna.create_study()

logger.info("Start optimization.")
study.optimize(objective, n_trials=10)

with open('foo.log') as f:
    assert f.readline() == "Start optimization.\n"
    assert f.readline().startswith("Trial 0 finished with value:")