@@ -350,13 +350,19 @@ def setup_with_config(
350350 controller = cls (
351351 console = console ,
352352 config = config ,
353+ log_override = log_override ,
353354 )
354355 return controller
355356
356- def __init__ (self , config : SQLMeshContextConfig , console : EventConsole ):
357+ def __init__ (
358+ self ,
359+ config : SQLMeshContextConfig ,
360+ console : EventConsole ,
361+ log_override : t .Optional [logging .Logger ] = None ,
362+ ):
357363 self .config = config
358364 self .console = console
359- self .logger = logger
365+ self .logger = log_override or logger
360366 self ._context_open = False
361367
362368 def set_logger (self , logger : logging .Logger ):
@@ -379,7 +385,10 @@ def _create_context(self):
379385 return Context (** options )
380386
381387 @contextmanager
382- def instance (self , environment : str ):
388+ def instance (self , environment : str , component : str = "unknown" ):
389+ self .logger .info (
390+ f"Opening sqlmesh instance for env={ environment } component={ component } "
391+ )
383392 if self ._context_open :
384393 raise Exception ("Only one sqlmesh instance at a time" )
385394
@@ -390,6 +399,9 @@ def instance(self, environment: str):
390399 environment , self .console , self .config , context , self .logger
391400 )
392401 finally :
402+ self .logger .info (
403+ f"Closing sqlmesh instance for env={ environment } component={ component } "
404+ )
393405 self ._context_open = False
394406 context .close ()
395407
@@ -398,7 +410,7 @@ def run(
398410 environment : str ,
399411 ** run_options : t .Unpack [RunOptions ],
400412 ):
401- with self .instance (environment ) as mesh :
413+ with self .instance (environment , "run" ) as mesh :
402414 yield from mesh .run (** run_options )
403415
404416 def plan (
@@ -408,7 +420,7 @@ def plan(
408420 default_catalog : t .Optional [str ],
409421 plan_options : PlanOptions ,
410422 ):
411- with self .instance (environment ) as mesh :
423+ with self .instance (environment , "plan" ) as mesh :
412424 yield from mesh .plan (categorizer , default_catalog , ** plan_options )
413425
414426 def plan_and_run (
@@ -419,7 +431,7 @@ def plan_and_run(
419431 plan_options : t .Optional [PlanOptions ] = None ,
420432 run_options : t .Optional [RunOptions ] = None ,
421433 ):
422- with self .instance (environment ) as mesh :
434+ with self .instance (environment , "plan_and_run" ) as mesh :
423435 yield from mesh .plan_and_run (
424436 categorizer = categorizer ,
425437 default_catalog = default_catalog ,
0 commit comments