46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
import logging
|
|
|
|
from ctranslate2 import _ext
|
|
|
|
_PYTHON_TO_CT2_LEVEL = {
|
|
logging.CRITICAL: _ext.LogLevel.Critical,
|
|
logging.ERROR: _ext.LogLevel.Error,
|
|
logging.WARNING: _ext.LogLevel.Warning,
|
|
logging.INFO: _ext.LogLevel.Info,
|
|
logging.DEBUG: _ext.LogLevel.Debug,
|
|
logging.NOTSET: _ext.LogLevel.Trace,
|
|
}
|
|
|
|
_CT2_TO_PYTHON_LEVEL = {v: k for k, v in _PYTHON_TO_CT2_LEVEL.items()}
|
|
|
|
|
|
def set_log_level(level: int):
|
|
"""Sets the CTranslate2 logging level from a Python logging level.
|
|
|
|
Arguments:
|
|
level: A Python logging level.
|
|
|
|
Example:
|
|
|
|
>>> import logging
|
|
>>> ctranslate2.set_log_level(logging.INFO)
|
|
|
|
Note:
|
|
The argument is a Python logging level for convenience, but this function
|
|
controls the C++ logs of the library.
|
|
"""
|
|
ct2_level = _PYTHON_TO_CT2_LEVEL.get(level)
|
|
if ct2_level is None:
|
|
raise ValueError("Level %d is not a valid logging level" % level)
|
|
_ext.set_log_level(ct2_level)
|
|
|
|
|
|
def get_log_level() -> int:
|
|
"""Returns the current logging level.
|
|
|
|
Returns:
|
|
A Python logging level.
|
|
"""
|
|
ct2_level = _ext.get_log_level()
|
|
return _CT2_TO_PYTHON_LEVEL[ct2_level]
|