11# Copyright NTESS. See COPYRIGHT file for details.
22#
33# SPDX-License-Identifier: MIT
4-
5- # /Formatter
6- # Copyright NTESS. See COPYRIGHT file for details.
7- #
8- # SPDX-License-Identifier: MIT
9-
104import datetime
115import json
126import logging as builtin_logging
@@ -172,7 +166,7 @@ def __init__(
172166 max_interval : float = 120.0 ,
173167 growth : float = 1.6 ,
174168 ) -> None :
175- self .logger = get_logger ( name )
169+ self .logger_name = name
176170 self .min_interval = min_interval
177171 self .max_interval = max_interval
178172 self .growth = growth
@@ -190,7 +184,7 @@ def emit(self, signature: tuple[str, ...], msg: str) -> None:
190184 self ._last_emit = 0.0
191185
192186 if now - self ._last_emit >= self ._interval :
193- self .logger .debug (msg )
187+ get_logger ( self .logger_name ) .debug (msg )
194188 self ._last_emit = now
195189 self ._interval = min (self ._interval * self .growth , self .max_interval )
196190
@@ -201,10 +195,13 @@ def emit(self, signature: tuple[str, ...], msg: str) -> None:
201195def get_logger (name : str | None = None ) -> CanaryLogger :
202196 if name is None :
203197 name = root_log_name
204- parts = name .split ("." )
205- if parts [0 ] != root_log_name :
206- parts .insert (0 , root_log_name )
207- name = "." .join (parts )
198+ else :
199+ parts = name .split ("." )
200+ if parts [0 ] == "_canary" :
201+ parts [0 ] = root_log_name
202+ elif parts [0 ] != root_log_name :
203+ parts .insert (0 , root_log_name )
204+ name = "." .join (parts )
208205 logger = cast (CanaryLogger , builtin_logging .getLogger (name ))
209206 return logger
210207
@@ -306,20 +303,20 @@ def get_level() -> int:
306303
307304
308305def info (* args , ** kwargs ):
309- logger = get_logger ()
310- logger .info (* args , ** kwargs )
306+ get_logger ().info (* args , ** kwargs )
311307
312308
313309def warning (* args , ** kwargs ):
314- logger = get_logger ()
315- logger .warning (* args , ** kwargs )
310+ get_logger ().warning (* args , ** kwargs )
316311
317312
318313def error (* args , ** kwargs ):
319- logger = get_logger ()
320- logger .error (* args , ** kwargs )
314+ get_logger ().error (* args , ** kwargs )
321315
322316
323317def critical (* args , ** kwargs ):
324- logger = get_logger ()
325- logger .critical (* args , ** kwargs )
318+ get_logger ().critical (* args , ** kwargs )
319+
320+
321+ def exception (* args , ** kwargs ):
322+ get_logger ().exception (* args , ** kwargs )
0 commit comments