Logging
Logging with Accelerate
Accelerate has its own logging utility to handle logging while in a distributed system. To utilize this replace cases of logging
with accelerate.logging
:
Copied
- import logging
+ from accelerate.logging import get_logger
- logger = logging.getLogger(__name__)
+ logger = get_logger(__name__)
Setting the log level
The log level can be set with the ACCELERATE_LOG_LEVEL
environment variable or by passing log_level
to get_logger
:
Copied
from accelerate.logging import get_logger
logger = get_logger(__name__, log_level="INFO")
accelerate.logging.get_logger
( name: strlog_level: str = None )
Parameters
name (
str
) โ The name for the logger, such as__file__
log_level (
str
, optional) โ The log level to use. If not passed, will default to theLOG_LEVEL
environment variable, orINFO
if not
Returns a logging.Logger
for name
that can handle multiprocessing.
If a log should be called on all processes, pass main_process_only=False
If a log should be called on all processes and in order, also pass in_order=True
Example:
Copied
>>> from accelerate.logging import get_logger
>>> from accelerate import Accelerator
>>> logger = get_logger(__name__)
>>> accelerator = Accelerator()
>>> logger.info("My log", main_process_only=False)
>>> logger.debug("My log", main_process_only=True)
>>> logger = get_logger(__name__, log_level="DEBUG")
>>> logger.info("My log")
>>> logger.debug("My second log")
>>> array = ["a", "b", "c", "d"]
>>> letter_at_rank = array[accelerator.process_index]
>>> logger.info(letter_at_rank, in_order=True)
Last updated