@@ -269,9 +269,9 @@ def __init__(
269
269
"serialize_stacktrace" : serialize_stacktrace ,
270
270
}
271
271
272
- self ._logger_buffer = logger_buffer
273
- if self ._logger_buffer :
274
- self ._buffer_cache = LoggerBufferCache (max_size_bytes = self ._logger_buffer .max_size )
272
+ self .buffer_config = logger_buffer
273
+ if self .buffer_config :
274
+ self .buffer_cache = LoggerBufferCache (max_size_bytes = self .buffer_config .max_size )
275
275
276
276
self ._init_logger (formatter_options = formatter_options , log_level = level , ** kwargs )
277
277
@@ -513,14 +513,13 @@ def decorate(event, context, *args, **kwargs):
513
513
# Execute the Lambda handler with provided event and context
514
514
return lambda_handler (event , context , * args , ** kwargs )
515
515
except :
516
- # Re-raise any exceptions that occur during handler execution
517
- raise
518
- finally :
519
516
# Flush the log buffer if configured to do so on uncaught errors
520
517
# Ensures logging state is cleaned up even if an exception is raised
521
518
if flush_buffer_on_uncaught_error :
522
- logger .debug ("An error happened , flushing the buffer" )
519
+ logger .debug ("Uncaught error detected , flushing log buffer before exit " )
523
520
self .flush_buffer ()
521
+ # Re-raise any exceptions that occur during handler execution
522
+ raise
524
523
525
524
return decorate
526
525
@@ -547,7 +546,7 @@ def debug(
547
546
# Also for clarity over complexity
548
547
549
548
# Buffer is not active and we need to log immediately
550
- if not self ._logger_buffer :
549
+ if not self .buffer_config :
551
550
return self ._logger .debug (
552
551
msg ,
553
552
* args ,
@@ -590,7 +589,7 @@ def info(
590
589
# Also for clarity over complexity
591
590
592
591
# Buffer is not active and we need to log immediately
593
- if not self ._logger_buffer :
592
+ if not self .buffer_config :
594
593
return self ._logger .info (
595
594
msg ,
596
595
* args ,
@@ -601,7 +600,7 @@ def info(
601
600
)
602
601
603
602
# Bypass buffer when log severity meets or exceeds configured minimum
604
- if _check_minimum_buffer_log_level (self ._logger_buffer .minimum_log_level , "INFO" ):
603
+ if _check_minimum_buffer_log_level (self .buffer_config .minimum_log_level , "INFO" ):
605
604
return self ._logger .info (
606
605
msg ,
607
606
* args ,
@@ -644,7 +643,7 @@ def warning(
644
643
# Also for clarity over complexity
645
644
646
645
# Buffer is not active and we need to log immediately
647
- if not self ._logger_buffer :
646
+ if not self .buffer_config :
648
647
return self ._logger .warning (
649
648
msg ,
650
649
* args ,
@@ -655,7 +654,7 @@ def warning(
655
654
)
656
655
657
656
# Bypass buffer when log severity meets or exceeds configured minimum
658
- if _check_minimum_buffer_log_level (self ._logger_buffer .minimum_log_level , "WARNING" ):
657
+ if _check_minimum_buffer_log_level (self .buffer_config .minimum_log_level , "WARNING" ):
659
658
return self ._logger .warning (
660
659
msg ,
661
660
* args ,
@@ -693,7 +692,7 @@ def error(
693
692
# 2. If auto-flush enabled, trigger complete buffer processing
694
693
# 3. Error log is not "bufferable", so ensure error log is immediately available
695
694
696
- if self ._logger_buffer and self ._logger_buffer .flush_on_error :
695
+ if self .buffer_config and self .buffer_config .flush_on_error :
697
696
self .flush_buffer ()
698
697
699
698
return self ._logger .error (
@@ -722,7 +721,7 @@ def critical(
722
721
# 1. Buffer configuration checked for immediate flush
723
722
# 2. If auto-flush enabled, trigger complete buffer processing
724
723
# 3. Critical log is not "bufferable", so ensure error log is immediately available
725
- if self ._logger_buffer and self ._logger_buffer .flush_on_error :
724
+ if self .buffer_config and self .buffer_config .flush_on_error :
726
725
self .flush_buffer ()
727
726
728
727
return self ._logger .critical (
@@ -751,7 +750,7 @@ def exception(
751
750
# 1. Buffer configuration checked for immediate flush
752
751
# 2. If auto-flush enabled, trigger complete buffer processing
753
752
# 3. Exception log is not "bufferable", so ensure error log is immediately available
754
- if self ._logger_buffer and self ._logger_buffer .flush_on_error :
753
+ if self .buffer_config and self .buffer_config .flush_on_error :
755
754
self .flush_buffer ()
756
755
757
756
return self ._logger .exception (
@@ -1102,7 +1101,7 @@ def _add_log_record_to_buffer(
1102
1101
1103
1102
if tracer_id :
1104
1103
log_record : dict [str , Any ] = _create_buffer_record (level = level , msg = msg , args = args , extra = extra )
1105
- self ._buffer_cache .add (tracer_id , log_record )
1104
+ self .buffer_cache .add (tracer_id , log_record )
1106
1105
1107
1106
def flush_buffer (self ) -> None :
1108
1107
"""
@@ -1127,7 +1126,7 @@ def flush_buffer(self) -> None:
1127
1126
return
1128
1127
1129
1128
# is buffer empty? return
1130
- buffer = self ._buffer_cache .get (tracer_id )
1129
+ buffer = self .buffer_cache .get (tracer_id )
1131
1130
if not buffer :
1132
1131
return
1133
1132
@@ -1136,7 +1135,7 @@ def flush_buffer(self) -> None:
1136
1135
self ._create_and_flush_log_record (log_line )
1137
1136
1138
1137
# Has items evicted?
1139
- if self ._buffer_cache .has_items_evicted (tracer_id ):
1138
+ if self .buffer_cache .has_items_evicted (tracer_id ):
1140
1139
warnings .warn (
1141
1140
message = "Some logs are not displayed because they were evicted from the buffer. "
1142
1141
"Increase buffer size to store more logs in the buffer" ,
@@ -1145,7 +1144,7 @@ def flush_buffer(self) -> None:
1145
1144
)
1146
1145
1147
1146
# Clear the entire cache
1148
- self ._buffer_cache .clear ()
1147
+ self .buffer_cache .clear ()
1149
1148
1150
1149
1151
1150
def set_package_logger (
0 commit comments