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]