@@ -17,7 +17,19 @@ class _Common(metaclass=abc.ABCMeta):
1717 INFO_URL : ClassVar [str ]
1818 ICON_URL : ClassVar [str ]
1919 iris_handle : Any = None
20- log_to_console : bool = False
20+ _log_to_console : bool = False
21+
22+ @property
23+ def log_to_console (self ) -> bool :
24+ return self ._log_to_console
25+
26+ @log_to_console .setter
27+ def log_to_console (self , value : bool ) -> None :
28+ self ._log_to_console = value
29+ self .logger = LogManager .get_logger (self .__class__ .__name__ ,value )
30+
31+ def __init__ (self ):
32+ self .logger = LogManager .get_logger (self .__class__ .__name__ )
2133
2234 # Lifecycle methods
2335 def on_init (self ) -> None :
@@ -172,7 +184,7 @@ def _get_properties(cls) -> List[List[Any]]:
172184 except :
173185 pass
174186 return ret
175-
187+
176188 # Logging methods
177189 def _log (self ) -> Tuple [str , Optional [str ]]:
178190 """Get class and method name for logging.
@@ -189,15 +201,27 @@ def _log(self) -> Tuple[str, Optional[str]]:
189201 pass
190202 return current_class , current_method
191203
192- @property
193- def logger (self ) -> logging .Logger :
194- """Get a logger instance for this component.
204+ def _logging (self , message : str , level : int , to_console : Optional [bool ] = None ) -> None :
205+ """Write log entry.
195206
196- Returns:
197- Logger configured for IRIS integration
207+ Args:
208+ message: Message to log
209+ level: Log level
210+ to_console: If True, log to console instead of IRIS
198211 """
199- class_name , method_name = self ._log ()
200- return LogManager .get_logger (class_name , method_name , self .log_to_console )
212+ current_class , current_method = self ._log ()
213+ if to_console is None :
214+ to_console = self .log_to_console
215+ if level == logging .DEBUG :
216+ self .logger .debug (message , extra = {'to_console' : to_console , 'class_name' : current_class , 'method_name' : current_method })
217+ elif level == logging .INFO :
218+ self .logger .info (message , extra = {'to_console' : to_console , 'class_name' : current_class , 'method_name' : current_method })
219+ elif level == logging .CRITICAL :
220+ self .logger .critical (message , extra = {'to_console' : to_console , 'class_name' : current_class , 'method_name' : current_method })
221+ elif level == logging .WARNING :
222+ self .logger .warning (message , extra = {'to_console' : to_console , 'class_name' : current_class , 'method_name' : current_method })
223+ elif level == logging .ERROR :
224+ self .logger .error (message , extra = {'to_console' : to_console , 'class_name' : current_class , 'method_name' : current_method })
201225
202226 def trace (self , message : str , to_console : Optional [bool ] = None ) -> None :
203227 """Write trace log entry.
@@ -206,8 +230,7 @@ def trace(self, message: str, to_console: Optional[bool] = None) -> None:
206230 message: Message to log
207231 to_console: If True, log to console instead of IRIS
208232 """
209- self .logger .debug (message , extra = {'to_console' : to_console })
210-
233+ self ._logging (message , logging .DEBUG , to_console )
211234
212235 def log_info (self , message : str , to_console : Optional [bool ] = None ) -> None :
213236 """Write info log entry.
@@ -216,7 +239,7 @@ def log_info(self, message: str, to_console: Optional[bool] = None) -> None:
216239 message: Message to log
217240 to_console: If True, log to console instead of IRIS
218241 """
219- self .logger . info (message , extra = { 'to_console' : to_console } )
242+ self ._logging (message , logging . INFO , to_console )
220243
221244 def log_alert (self , message : str , to_console : Optional [bool ] = None ) -> None :
222245 """Write alert log entry.
@@ -225,7 +248,7 @@ def log_alert(self, message: str, to_console: Optional[bool] = None) -> None:
225248 message: Message to log
226249 to_console: If True, log to console instead of IRIS
227250 """
228- self .logger . critical (message , extra = { 'to_console' : to_console } )
251+ self ._logging (message , logging . CRITICAL , to_console )
229252
230253 def log_warning (self , message : str , to_console : Optional [bool ] = None ) -> None :
231254 """Write warning log entry.
@@ -234,7 +257,7 @@ def log_warning(self, message: str, to_console: Optional[bool] = None) -> None:
234257 message: Message to log
235258 to_console: If True, log to console instead of IRIS
236259 """
237- self .logger . warning (message , extra = { 'to_console' : to_console } )
260+ self ._logging (message , logging . WARNING , to_console )
238261
239262 def log_error (self , message : str , to_console : Optional [bool ] = None ) -> None :
240263 """Write error log entry.
@@ -243,7 +266,7 @@ def log_error(self, message: str, to_console: Optional[bool] = None) -> None:
243266 message: Message to log
244267 to_console: If True, log to console instead of IRIS
245268 """
246- self .logger . error (message , extra = { 'to_console' : to_console } )
269+ self ._logging (message , logging . ERROR , to_console )
247270
248271 def log_assert (self , message : str ) -> None :
249272 """Write a log entry of type "assert". Log entries can be viewed in the management portal.
0 commit comments