все Python 3warningsфункция
warnings.showwarning()
вывод предупреждений
Функция, которой модуль warnings выводит каждое прошедшее фильтры предупреждение; по умолчанию пишет в stderr, её можно подменить.
Синтаксис
warnings.showwarning(message, category, filename, lineno, file=None, line=None)
Подмена warnings.showwarning отправляет предупреждения в свой интерфейс или файл, но фильтры она не обходит: заглушённое или уже показанное в этой строке предупреждение до неё не дойдёт. Подменять лучше внутри catch_warnings() — он вернёт исходную функцию на выходе. Для отправки в логи есть готовый logging.captureWarnings(True), который подменяет именно её.
Примеры
import warnings
def to_stdout(message, category, filename, lineno, file=None, line=None):
print(f'[{category.__name__}] {message}')
with warnings.catch_warnings():
warnings.simplefilter('always')
warnings.showwarning = to_stdout
warnings.warn('кэш устарел')
to_stdout('проверка', UserWarning, '', 0) # → [UserWarning] проверка
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности