Compare commits

...

1 Commits

Author SHA1 Message Date
Jeremy Cohen
93935138e9 Add setup_basic_logger during task initialization 2022-12-13 17:29:34 +01:00
3 changed files with 10 additions and 1 deletions

View File

@@ -22,6 +22,12 @@ metadata_vars: Optional[Dict[str, str]] = None
# generates events, without configuring the event manager.
EVENT_MANAGER: EventManager = EventManager()
# make sure that logs / exceptions go *somewhere* if they occur before the
# EventManager has been actually configured. this should only be needed if something
# has been configured / initialized incorrectly
def setup_basic_logger():
EVENT_MANAGER.add_logger(_get_stdout_config(level=EventLevel.INFO))
def setup_event_logger(log_path: str, level_override: Optional[EventLevel] = None):
cleanup_event_logger()

View File

@@ -11,7 +11,7 @@ from contextlib import contextmanager
from pathlib import Path
import dbt.version
from dbt.events.functions import fire_event, setup_event_logger, LOG_VERSION
from dbt.events.functions import fire_event, setup_basic_logger, setup_event_logger, LOG_VERSION
from dbt.events.types import (
MainEncounteredError,
MainKeyboardInterrupt,
@@ -219,6 +219,8 @@ def track_run(task):
def run_from_args(parsed):
log_cache_events(getattr(parsed, "log_cache_events", False))
# just in case something goes wrong before we reach the real 'setup_event_logger'
setup_basic_logger()
# this will convert DbtConfigErrors into RuntimeExceptions
# task could be any one of the task objects

View File

@@ -108,6 +108,7 @@ class BaseTask(metaclass=ABCMeta):
tracking.track_invalid_invocation(args=args, result_type=exc.result_type)
raise dbt.exceptions.RuntimeException("Could not run dbt") from exc
except dbt.exceptions.DbtProfileError as exc:
# This will use the 'basic' event manager, if the real one hasn't yet been configured
fire_event(DbtProfileError())
fire_event(DbtProfileErrorException(exc=str(exc)))