@@ -123,7 +123,7 @@ def __init__(
123
123
):
124
124
self .service = service or os .getenv ("POWERTOOLS_SERVICE_NAME" ) or "service_undefined"
125
125
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 )
127
127
self .child = child
128
128
self ._handler = logging .StreamHandler (stream ) if stream is not None else logging .StreamHandler (sys .stdout )
129
129
self ._default_log_keys = {"service" : self .service , "sampling_rate" : self .sampling_rate }
@@ -136,35 +136,14 @@ def __getattr__(self, name):
136
136
# https://github.com/awslabs/aws-lambda-powertools-python/issues/97
137
137
return getattr (self ._logger , name )
138
138
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
-
149
139
def _get_logger (self ):
150
140
""" Returns a Logger named {self.service}, or {self.service.filename} for child loggers"""
151
141
logger_name = self .service
152
142
if self .child :
153
- logger_name = f"{ self .service } .{ self . _get_caller_filename ()} "
143
+ logger_name = f"{ self .service } .{ _get_caller_filename ()} "
154
144
155
145
return logging .getLogger (logger_name )
156
146
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
-
168
147
def _init_logger (self , ** kwargs ):
169
148
"""Configures new logger"""
170
149
@@ -207,6 +186,8 @@ def inject_lambda_context(self, lambda_handler: Callable[[Dict, Any], Any] = Non
207
186
208
187
Parameters
209
188
----------
189
+ lambda_handler : Callable
190
+ Method to inject the lambda context
210
191
log_event : bool, optional
211
192
Instructs logger to log Lambda Event, by default False
212
193
@@ -292,6 +273,29 @@ def structure_logs(self, append: bool = False, **kwargs):
292
273
handler .setFormatter (JsonFormatter (** self ._default_log_keys , ** kwargs ))
293
274
294
275
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
+
295
299
def set_package_logger (
296
300
level : Union [str , int ] = logging .DEBUG , stream : sys .stdout = None , formatter : logging .Formatter = None
297
301
):
0 commit comments