Source code for lazy_text_classifiers.logging_utils
#!/usr/bin/env python
from __future__ import annotations
import logging
import re
[docs]
def set_global_logging_level(
level: int = logging.ERROR,
prefices: list[str] | None = None,
) -> None:
"""
Override logging levels of different modules based on their name as a prefix.
It needs to be invoked after the modules have been loaded so that their
loggers have been initialized.
Parameters
----------
level: int
Desired level. e.g. logging.INFO.
Default is logging.ERROR
prefices: list[str] | None
One or more string prefices to match (e.g. ["transformers", "torch"])
Default of None will match all loggers.
The match is a case-sensitive `module_name.startswith(prefix)`
Notes
-----
Credit:
https://github.com/huggingface/transformers/issues/3050#issuecomment-682167272
"""
if prefices is None:
prefices = [""]
prefix_re = re.compile(rf"^(?:{ '|'.join(prefices) })")
for name in logging.root.manager.loggerDict:
if re.match(prefix_re, name):
logging.getLogger(name).setLevel(level)