17
17
INVOCATION_LOGGING_CONTEXT ,
18
18
JsonFormatter ,
19
19
DATETIME_FORMAT ,
20
+ LambdaLogFormat ,
20
21
)
21
22
from .lambda_runtime_marshaller import to_json
22
23
@@ -106,7 +107,7 @@ def replace_line_indentation(line, indent_char, new_indent_char):
106
107
107
108
108
109
def log_error (error_result , log_sink ):
109
- if AWS_LAMBDA_LOG_FORMAT == " JSON" :
110
+ if AWS_LAMBDA_LOG_FORMAT == LambdaLogFormat . JSON :
110
111
log_error_json (error_result , log_sink )
111
112
else :
112
113
log_error_text (error_result , log_sink )
@@ -294,7 +295,7 @@ def emit(self, record: logging.LogRecord):
294
295
self .log_sink .log (
295
296
msg ,
296
297
log_level = record .levelno ,
297
- log_format = getattr (record , "log_format" , " TEXT" ),
298
+ log_format = getattr (record , "log_format" , LambdaLogFormat . TEXT ),
298
299
)
299
300
300
301
@@ -336,7 +337,7 @@ def __enter__(self):
336
337
def __exit__ (self , exc_type , exc_value , exc_tb ):
337
338
pass
338
339
339
- def log (self , msg , log_level = logging .NOTSET , log_format = " TEXT" ):
340
+ def log (self , msg , log_level = logging .NOTSET , log_format = LambdaLogFormat . TEXT ):
340
341
sys .stdout .write (msg )
341
342
342
343
def log_error (self , message_lines , log_level = logging .ERROR ):
@@ -383,21 +384,11 @@ def __exit__(self, exc_type, exc_value, exc_tb):
383
384
384
385
def set_log_level (self , frame_type , log_level ):
385
386
mask = self .LEVEL_TO_MASK .get (log_level , self .DEFAULT_LEVEL_MASK )
386
- frame_type |= mask
387
-
388
- return frame_type
389
-
390
- @staticmethod
391
- def set_log_format (frame_type , log_format ):
392
- if log_format == "JSON" :
393
- mask = 0b00
394
- else :
395
- mask = 0b01
396
387
return frame_type | mask
397
388
398
- def log (self , msg , log_level = logging .NOTSET , log_format = " TEXT" ):
389
+ def log (self , msg , log_level = logging .NOTSET , log_format = LambdaLogFormat . TEXT ):
399
390
frame_type = self .set_log_level (self .frame_type , log_level )
400
- frame_type = self . set_log_format ( frame_type , log_format )
391
+ frame_type = frame_type | log_format
401
392
402
393
encoded_msg = msg .encode ("utf8" )
403
394
timestamp = int (time .time_ns () / 1000 ) # UNIX timestamp in microseconds
@@ -432,7 +423,9 @@ def create_log_sink():
432
423
return StandardLogSink ()
433
424
434
425
435
- AWS_LAMBDA_LOG_FORMAT = os .environ .get ("AWS_LAMBDA_LOG_FORMAT" , "TEXT" )
426
+ AWS_LAMBDA_LOG_FORMAT = LambdaLogFormat .from_str (
427
+ os .environ .get ("AWS_LAMBDA_LOG_FORMAT" , "TEXT" )
428
+ )
436
429
AWS_LAMBDA_LOG_LEVEL = os .environ .get ("AWS_LAMBDA_LOG_LEVEL" )
437
430
_GLOBAL_AWS_REQUEST_ID = None
438
431
@@ -442,7 +435,7 @@ def setup_logging(log_format, log_level, log_sink):
442
435
logging .Formatter .converter = time .gmtime
443
436
logger = logging .getLogger ()
444
437
logger_handler = LambdaLoggerHandler (log_sink )
445
- if log_format == " JSON" :
438
+ if log_format == LambdaLogFormat . JSON :
446
439
logger_handler .setFormatter (JsonFormatter ())
447
440
else :
448
441
logger_handler .setFormatter (
0 commit comments