Implementation:Huggingface Optimum Logging
| Knowledge Sources | |
|---|---|
| Domains | Logging, Infrastructure |
| Last Updated | 2026-02-15 00:00 GMT |
Overview
Concrete tool for configuring and managing the Optimum library logging system with verbosity controls, handler management, and format customization provided by the Huggingface Optimum library.
Description
This module provides a centralized logging system for the Optimum library, closely mirroring the Transformers logging module. Key features include:
- get_logger(name) — Returns a configured logger under the `optimum` namespace
- set_verbosity(level) / get_verbosity() — Control the library-wide log level
- Convenience functions: set_verbosity_info(), set_verbosity_warning(), set_verbosity_debug(), set_verbosity_error()
- Handler management: enable_default_handler(), disable_default_handler(), add_handler(), remove_handler()
- Propagation control: enable_propagation(), disable_propagation()
- Format control: enable_explicit_format(), reset_format()
- warn_once(logger, msg) — LRU-cached function to emit a warning only once
The default log level is WARNING, overridable via the `TRANSFORMERS_VERBOSITY` environment variable.
Usage
Use get_logger(__name__) in any Optimum module to obtain a properly configured logger. Use the verbosity functions to adjust log output during debugging or production use.
Code Reference
Source Location
- Repository: Huggingface_Optimum
- File: optimum/utils/logging.py
- Lines: 1-275
Signature
def get_logger(name: Optional[str] = None) -> logging.Logger:
"""Return a logger with the specified name under the optimum namespace."""
def get_verbosity() -> int:
"""Return the current verbosity level."""
def set_verbosity(verbosity: int) -> None:
"""Set the verbosity level for the library root logger."""
def set_verbosity_info(): ...
def set_verbosity_warning(): ...
def set_verbosity_debug(): ...
def set_verbosity_error(): ...
def disable_default_handler() -> None: ...
def enable_default_handler() -> None: ...
def add_handler(handler: logging.Handler) -> None: ...
def remove_handler(handler: logging.Handler) -> None: ...
def disable_propagation() -> None: ...
def enable_propagation() -> None: ...
def enable_explicit_format() -> None: ...
def reset_format() -> None: ...
@lru_cache(None)
def warn_once(logger: "Logger", msg: str): ...
Import
from optimum.utils.logging import get_logger, set_verbosity, set_verbosity_info
I/O Contract
Inputs (get_logger)
| Name | Type | Required | Description |
|---|---|---|---|
| name | str | No | Logger name; defaults to library root name ("optimum") |
Outputs (get_logger)
| Name | Type | Description |
|---|---|---|
| logger | logging.Logger | Configured logger instance under the optimum namespace |
Inputs (set_verbosity)
| Name | Type | Required | Description |
|---|---|---|---|
| verbosity | int | Yes | Log level (e.g., logging.DEBUG, logging.INFO, logging.WARNING) |
Usage Examples
Basic Logger Usage
from optimum.utils.logging import get_logger
logger = get_logger(__name__)
logger.info("Loading model...")
logger.warning("Deprecated parameter used")
Adjusting Verbosity
from optimum.utils import logging
# Enable debug output
logging.set_verbosity_debug()
# Or set a specific level
logging.set_verbosity(logging.INFO)
# Check current level
level = logging.get_verbosity()
Custom Handler
import logging as stdlib_logging
from optimum.utils.logging import add_handler
file_handler = stdlib_logging.FileHandler("optimum.log")
add_handler(file_handler)