Логи
Форматирование логов
dbt выводит логи в два разных места: консоль CLI и файл логов.
Конфигурации LOG_FORMAT и LOG_FORMAT_FILE определяют, как должны быть отформатированы логи dbt, и у них есть одинаковые опции: json, text и debug.
dbt --log-format json run
Формат text является стандартным для логов в консоли и содержит сообщения в простом текстовом формате с префиксом в виде простого временного штампа:
23:30:16 Running with dbt=1.8.0
23:30:17 Registered adapter: postgres=1.8.0
Формат debug является стандартным для файла логов и аналогичен формату text, но с более детализированным временным штампом, а также включает invocation_id, thread_id и уровень логирования каждого сообщения:
============================== 16:12:08.555032 | 9089bafa-4010-4f38-9b42-564ec9106e07 ==============================
16:12:08.555032 [info ] [MainThread]: Running with dbt=1.8.0
16:12:08.751069 [info ] [MainThread]: Registered adapter: postgres=1.8.0
Формат json выводит полностью структурированные логи в формате :
{"data": {"log_version": 3, "version": "=1.8.0"}, "info": {"category": "", "code": "A001", "extra": {}, "invocation_id": "82131fa0-d2b4-4a77-9436-019834e22746", "level": "info", "msg": "Running with dbt=1.8.0", "name": "MainReportVersion", "pid": 7875, "thread": "MainThread", "ts": "2024-05-29T23:32:54.993336Z"}}
{"data": {"adapter_name": "postgres", "adapter_version": "=1.8.0"}, "info": {"category": "", "code": "E034", "extra": {}, "invocation_id": "82131fa0-d2b4-4a77-9436-019834e22746", "level": "info", "msg": "Registered adapter: postgres=1.8.0", "name": "AdapterRegistered", "pid": 7875, "thread": "MainThread", "ts": "2024-05-29T23:32:56.437986Z"}}
Когда LOG_FORMAT установлен явно, он будет применяться как в консоли, так и в файлах логов, тогда как LOG_FORMAT_FILE влияет только на файл логов.
dbt --log-format-file json run
Используйте значение форматирования json вместе с конфигурацией DEBUG, чтобы полу чить богатую информацию о логах, которую можно передать в инструменты мониторинга для анализа:
dbt --debug --log-format json run
Смотрите структурированное логирование для более подробной информации.
Уровень логирования
Конфигурация LOG_LEVEL устанавливает минимальную серьезность событий, фиксируемых в консоли и файлах логов. Это более гибкая альтернатива флагу --debug. Доступные опции для уровней логирования: debug, info, warn, error или none.
-
Установка
--log-levelнастроит логи в консоли и файлах.dbt --log-level debug run -
Установка
LOG_LEVELвnoneотключит отправку информации как в консоль, так и в файлы логов.dbt --log-level none -
Чтобы установить уровень логирования для файла отличным от консоли, используйте флаг
--log-level-file.dbt --log-level-file error run -
Чтобы отключить запись в файл логов, но сохранить логи в консоли, установите конфигурацию
LOG_LEVEL_FILEв none.dbt --log-level-file none
Логирование на уровне отладки
Конфигурация DEBUG перенаправляет отладочные логи dbt на стандартный вывод. Это приводит к отображению информации об отладке в терминале в дополнение к файлу logs/dbt.log. Этот вывод является подробным.
Флаг --debug также доступен в сокращенной форме как -d.
dbt --debug run
...
Пути для логов и целевых файлов
По умолчанию, dbt будет записывать логи в директорию с именем logs/, а все остальные артефакты в директорию с именем target/. Обе эти директории расположены относительно dbt_project.yml активного проекта.
Как и другие глобальные конфигурации, эти значения можно переопределить для вашей среды или вызова, используя опции CLI (--target-path, --log-path) или переменные окружения (DBT_TARGET_PATH, DBT_LOG_PATH).
Подавление логов без ошибок в выводе
По умолчанию, dbt показывает все логи в стандартном выводе (stdout). Вы можете использовать конфигурацию QUIET, чт обы показывать только логи ошибок в stdout. Логи все равно будут включать вывод всего, что передано в макрос print(). Например, вы можете подавить все, кроме логов ошибок, чтобы легче находить и исправлять ошибки jinja.
config:
quiet: true
Передайте флаг -q или --quiet в dbt run, чтобы показывать только логи ошибок и подавлять логи без ошибок.
dbt --quiet run
...
Логирование списка dbt
В версии dbt 1.5 мы обновили поведение логирования команды dbt list, чтобы по умолчанию включать логи уровня INFO.
Вы можете использовать любой из этих параметров, чтобы обеспечить чистый вывод, совместимый с последующими процессами, такими как передача результатов в jq, файл или другой процесс:
dbt --log-level warn list(рекомендуется; эквивалентно предыдущему значению по умолчанию)dbt --quiet list(подавляет все логи ниже уровняERROR, кроме "напечатанных" сообщений и вывода списка)
Логирование событий кэширования реляционных данных
Конфигурация LOG_CACHE_EVENTS позволяет вести детализированный журнал для реляционный кэш, которые по умолчанию отключены.
dbt --log-cache-events compile
Цвет
Вы можете установить цветовые предпочтения для файлов логов только в profiles.yml или используя флаги --use-colors-file / --no-use-colors-file.
config:
use_colors_file: False
dbt --use-colors-file run
dbt --no-use-colors-file run