@@ -123,7 +123,7 @@ def __init__(
123123 ):
124124 self .service = service or os .getenv ("POWERTOOLS_SERVICE_NAME" ) or "service_undefined"
125125 self .sampling_rate = sampling_rate or os .getenv ("POWERTOOLS_LOGGER_SAMPLE_RATE" ) or 0.0
126- self .log_level = self . _get_log_level (level )
126+ self .log_level = _get_log_level (level )
127127 self .child = child
128128 self ._handler = logging .StreamHandler (stream ) if stream is not None else logging .StreamHandler (sys .stdout )
129129 self ._default_log_keys = {"service" : self .service , "sampling_rate" : self .sampling_rate }
@@ -136,35 +136,14 @@ def __getattr__(self, name):
136136 # https://github.com/awslabs/aws-lambda-powertools-python/issues/97
137137 return getattr (self ._logger , name )
138138
139- def _get_log_level (self , level : Union [str , int ]) -> Union [str , int ]:
140- """ Returns preferred log level set by the customer in upper case """
141- if isinstance (level , int ):
142- return level
143-
144- log_level : str = level or os .getenv ("LOG_LEVEL" )
145- log_level = log_level .upper () if log_level is not None else logging .INFO
146-
147- return log_level
148-
149139 def _get_logger (self ):
150140 """ Returns a Logger named {self.service}, or {self.service.filename} for child loggers"""
151141 logger_name = self .service
152142 if self .child :
153- logger_name = f"{ self .service } .{ self . _get_caller_filename ()} "
143+ logger_name = f"{ self .service } .{ _get_caller_filename ()} "
154144
155145 return logging .getLogger (logger_name )
156146
157- def _get_caller_filename (self ):
158- """ Return caller filename by finding the caller frame """
159- # Current frame => _get_logger()
160- # Previous frame => logger.py
161- # Before previous frame => Caller
162- frame = inspect .currentframe ()
163- caller_frame = frame .f_back .f_back .f_back
164- filename = caller_frame .f_globals ["__name__" ]
165-
166- return filename
167-
168147 def _init_logger (self , ** kwargs ):
169148 """Configures new logger"""
170149
@@ -207,6 +186,8 @@ def inject_lambda_context(self, lambda_handler: Callable[[Dict, Any], Any] = Non
207186
208187 Parameters
209188 ----------
189+ lambda_handler : Callable
190+ Method to inject the lambda context
210191 log_event : bool, optional
211192 Instructs logger to log Lambda Event, by default False
212193
@@ -292,6 +273,29 @@ def structure_logs(self, append: bool = False, **kwargs):
292273 handler .setFormatter (JsonFormatter (** self ._default_log_keys , ** kwargs ))
293274
294275
276+ def _get_log_level (level : Union [str , int ]) -> Union [str , int ]:
277+ """ Returns preferred log level set by the customer in upper case """
278+ if isinstance (level , int ):
279+ return level
280+
281+ log_level : str = level or os .getenv ("LOG_LEVEL" )
282+ log_level = log_level .upper () if log_level is not None else logging .INFO
283+
284+ return log_level
285+
286+
287+ def _get_caller_filename ():
288+ """ Return caller filename by finding the caller frame """
289+ # Current frame => _get_logger()
290+ # Previous frame => logger.py
291+ # Before previous frame => Caller
292+ frame = inspect .currentframe ()
293+ caller_frame = frame .f_back .f_back .f_back
294+ filename = caller_frame .f_globals ["__name__" ]
295+
296+ return filename
297+
298+
295299def set_package_logger (
296300 level : Union [str , int ] = logging .DEBUG , stream : sys .stdout = None , formatter : logging .Formatter = None
297301):
0 commit comments