Логи
Форматирование логов
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