-
Notifications
You must be signed in to change notification settings - Fork 434
fix(logger): fix exception on flush without buffer #6794
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #6794 +/- ##
========================================
Coverage 96.21% 96.21%
========================================
Files 273 273
Lines 12691 12691
Branches 946 946
========================================
Hits 12211 12211
Misses 375 375
Partials 105 105 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @tonnico thanks for sending this PR. Your fork doesn't allow modification, so, can you please add this test to make sure we are testing this situation?
def test_flush_buffer_without_buffer_config(stdout, service_name, lambda_context, monkeypatch):
# Set initial trace ID for first Lambda invocation
monkeypatch.setenv(constants.XRAY_TRACE_ID_ENV, "1-67c39786-5908a82a246fb67f3089263f")
# GIVEN A logger without buffer configuration
logger = Logger(level="DEBUG", service=service_name, stream=stdout)
@logger.inject_lambda_context(flush_buffer_on_uncaught_error=True)
def handler(event, context):
# Log messages that should be flushed when an exception occurs
logger.debug("this log line will be flushed after error - 1")
logger.debug("this log line will be flushed after error - 2")
raise ValueError("Test error")
# WHEN Invoking the handler and expecting a ValueError
# AND flush_buffer_on_uncaught_error is True but there is no logger buffer configuration
with pytest.raises(ValueError):
handler({}, lambda_context)
# THEN Verify that buffered log messages are flushed without any exception
log = capture_multiple_logging_statements_output(stdout)
assert len(log) == 2, "Expected two log messages to be flushed"
Issue number: #6793
Summary
Changes
User experience
Checklist
If your change doesn't seem to apply, please leave them unchecked.
Is this a breaking change?
RFC issue number:
Checklist:
Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.