ロギングのカスタマイズ方法¶
Amplify-BBOpt は、内部で Python 標準の logging
モジュールを使用しており、ロガー名 “amplify_bbopt” (AMPLIFY_BBOPT_LOGGER_NAME
) を通じてログ出力を制御しています。このページでは、ユーザーがログ出力を柔軟に制御するための方法を紹介します。
ロガーの基本情報¶
ロガー名: “amplify_bbopt” (
AMPLIFY_BBOPT_LOGGER_NAME
)デフォルト設定:
ログレベル:
INFO
出力先:標準出力(
sys.stdout
)伝播 (propagation):無効(
False
)
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLogger
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
ロギングの制御¶
ログ出力を無効にする¶
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLogger
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
logger.disabled = True
ログレベルの変更¶
例えば、WARNING
レベル以上のログだけを表示したい場合:
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLogger, WARNING
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
logger.setLevel(WARNING)
特定のハンドラーに対して変更したい場合:
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLogger, WARNING
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
for handler in logger.handlers:
handler.setLevel(WARNING)
ファイルへのログ出力を追加する¶
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME, AMPLIFY_BBOPT_LOG_FORMATTER
from logging import FileHandler, getLogger
file_handler = FileHandler("amplify_bbopt.log")
file_handler.setFormatter(AMPLIFY_BBOPT_LOG_FORMATTER)
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
logger.addHandler(file_handler)
ログの親ロガーへの伝播を有効化する¶
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLogger
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
logger.propagate = True
ロガーの状態確認¶
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLevelName, getLogger
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
print("Level:", getLevelName(logger.level))
print("Handlers:", logger.handlers)
print("Propagate:", logger.propagate)
Note
複数のハンドラーを組み合わせることで、標準出力・ファイル出力などの併用が可能です。また、ログのフォーマットやフィルターの追加も標準の logging
モジュールの機能として利用できます。
詳細は Python の公式ドキュメントをご参照ください: https://docs.python.org/ja/3/library/logging.html