Кто-нибудь знает, как подавить все журналы уровня «информации» воздушного потока, но не подавить журналы, специфичные для реализации приложения? - PullRequest
0 голосов
/ 08 декабря 2018

Airflow 1.10.1 имеет атрибут «logging_level», который, я считаю, связан с уровнем ведения журнала Python.Когда значение равно INFO или меньше, выходные журналы слишком многословны и не нужны в развертываниях.

Скорее, я хочу иметь возможность регистрировать только ошибки среды воздушного потока и все, что я хочу, чтобы регистрировалось мое приложение.Затем я сократил журналирование до минимума, в основном только в контексте приложения, и сохранил только фреймворк / ошибки выполнения воздушного потока.

В конкретном PythonOperator я написал на 5 разных уровнях журнала, чтобы увидеть, чтопроисходит с ними, когда я изменяю airflow.cfg logging_level.

logging.debug('******************* HELLO debug *******************')
logging.info('******************* HELLO info *******************')
logging.warning('******************* HELLO warning *******************')
logging.error('******************* HELLO error *******************')
logging.critical('******************* HELLO critical *******************')

Идея состоит в том, что, изменяя атрибут airflow.cfg для logging_level с отладки на информацию на предупреждение, я вижувсе меньше и меньше журналов воздушного потока, и просто оставляйте журналы, специфичные для приложения, которые я хочу.

Шаг 1: logging_level = DEBUG

Вот журнал из задачи, в котором есть журналы на всех уровнях от отладкивверх.

enter image description here

Шаг 2: logging_level = INFO

Как и ожидалось, журналы не содержат сообщений уровня отладки.enter image description here

Шаг 3: logging_level = WARNING

Когда мы переходим от INFO к WARNING, файл пуст.Я ожидал предупреждений, ошибок и критических сообщений в файле, а остальные подавлены из-за Airflow, так как журнал не содержал ничего из потока воздуха на уровне выше INFO.

enter image description here

Шаг 4: logging_level = ОШИБКА

Та же проблема и здесь, файл пуст.Я ожидал получить сообщение об ошибке и критические сообщения, но файл пуст.

enter image description here

Обратите внимание, что на последних двух снимках экрана путь не тотнедействительно, но Airflow просто отображает путь к файлу, который, по-видимому, отсутствует при отсутствии какого-либо содержимого в файле журнала.

Итак, мой вопрос: 1) Это просто ошибка Airflow?2) Я не использую это правильно?Или мне нужно сделать что-то еще для того, чтобы подавить журналы уровня воздушного потока из INFO и ниже в производственной среде и просто сохранять журналы, относящиеся к моему приложению?

1 Ответ

0 голосов
/ 10 января 2019

Если вы заметили в скриншотах вашего журнала, ваше сообщение журнала фактически обернуто в информационный журнал.Если вы хотите на самом деле изменить уровень журнала в журнале задач, а не переносить его, вы можете извлечь журнал экземпляра задачи (из ** kwargs) и использовать его напрямую, в отличие от общего вызова logging.warning ().Вот пример:

def your_python_callable(**kwargs):
    log = kwargs["ti"].log
    log.warning("******HELLO Debug******")
...