Logging¶
-
optuna.logging.
get_verbosity
() → int[源代码]¶ 返回目前 Optuna 的 root logger 的 logging 层级。
- 返回
Logging 层级,比如
optuna.logging.DEBUG
或者optuna.logging.INFO
.
注解
Optuna 包含以下 loggin 层级。
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[源代码]¶ 设置 Optuna 的 root logger 的 logging 层级。
- 参数
verbosity -- Logging 层级,比如
optuna.logging.DEBUG
或者optuna.logging.INFO
.
-
optuna.logging.
disable_default_handler
() → None[源代码]¶ 禁用 Optuna 的 root logger 的默认句柄。
示例
停止并恢复 logging 层级到
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[源代码]¶ 启用 Optuna 的 root logger 的默认句柄。
请参考
disable_default_handler()
中的例子。
-
optuna.logging.
enable_propagation
() → None[源代码]¶ 启用库 log 输出的传递。
如果已经配置了 root logger 的话,请禁用 Optuna 的默认句柄,以防止重复 logging。
示例
将所有的log 输出传递到 root logger 以将它们存储到文件中。
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:")