Customizing Logging¶
Amplify-BBOpt internally uses Python’s standard logging module for log management, with the logger name “amplify_bbopt” (AMPLIFY_BBOPT_LOGGER_NAME). This page explains how you can flexibly control the logging behavior.
Logger basics¶
Logger name: “amplify_bbopt” (
AMPLIFY_BBOPT_LOGGER_NAME)Default settings:
Log level:
INFOOutput destination: Standard output (
sys.stdout)Propagation: Disabled (
False)
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLogger
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
Controlling logging¶
Disable logging¶
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLogger
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
logger.disabled = True
Changing log level¶
For example, to display only logs at WARNING level or higher:
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLogger, WARNING
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
logger.setLevel(WARNING)
To change the level for each handler individually:
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)
Adding file output¶
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)
Enabling propagation to parent loggers¶
from amplify_bbopt import AMPLIFY_BBOPT_LOGGER_NAME
from logging import getLogger
logger = getLogger(AMPLIFY_BBOPT_LOGGER_NAME)
logger.propagate = True
Checking logger status¶
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
By combining multiple handlers, you can output logs simultaneously to both standard output and files. You can also customize log formatting or add filters using standard features of Python’s logging module.
For more details, see the official Python documentation: https://docs.python.org/3/library/logging.html