11import logging
22import os
3- from functools import wraps
3+ from functools import wraps , cache
44
55from opencensus .ext .azure .log_exporter import AzureLogHandler
66
99from ._constants import ENV_VAR_ENABLE_APP_INSIGHTS , ENV_VAR_ENGINE_ROOM_APP_ID
1010from .globalsettings import environment
1111
12- exceptions_logger = logging .getLogger (__name__ + "_exception_logger" )
13- exceptions_logger .setLevel (logging .DEBUG )
14-
15- if os .getenv (ENV_VAR_ENABLE_APP_INSIGHTS ) is not None :
16- enable_app_insights = os .environ [ENV_VAR_ENABLE_APP_INSIGHTS ].lower ()
17- if enable_app_insights == "true" or enable_app_insights == "1" :
18- app_insight_handler = AzureLogHandler (
19- connection_string = environment ._application_insight_connectionstring
20- )
21- app_insight_handler .setLevel ("WARNING" )
22- exceptions_logger .addHandler (app_insight_handler )
23-
12+ @cache
13+ def get_exceptions_logger () -> logging .Logger :
14+ exceptions_logger = logging .getLogger (__name__ + "_exception_logger" )
15+ exceptions_logger .setLevel (logging .DEBUG )
16+
17+ if os .getenv (ENV_VAR_ENABLE_APP_INSIGHTS ) is not None :
18+ enable_app_insights = os .environ [ENV_VAR_ENABLE_APP_INSIGHTS ].lower ()
19+ if enable_app_insights == "true" or enable_app_insights == "1" :
20+ app_insight_handler = AzureLogHandler (
21+ connection_string = environment ._application_insight_connectionstring
22+ )
23+ app_insight_handler .setLevel ("WARNING" )
24+ exceptions_logger .addHandler (app_insight_handler )
25+ return exceptions_logger
2426
2527def log_decorator (log_level ):
2628 def decorator (func ):
@@ -39,7 +41,7 @@ def wrapper(self, *args, **kwargs):
3941 ENV_VAR_ENGINE_ROOM_APP_ID
4042 )
4143
42- log_function = getattr (exceptions_logger , log_level )
44+ log_function = getattr (get_exceptions_logger () , log_level )
4345 log_function (e , extra = properties )
4446 raise e
4547
0 commit comments