Add connection identifier to log lines for multi-client applications #63
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When running multiple AMQP clients in a single application, it was impossible to distinguish which log lines belonged to which connection. This made debugging and monitoring difficult in production environments with multiple concurrent connections.
Solution
Added a unique connection identifier to all log lines using Crystal's
Log.contextfeature. The identifier is:54321)Using the local port number (as suggested in #issue-comment) provides an excellent identifier because:
Implementation Details
The connection identifier is:
@connection_idinstance variableread_loop)unsafe_write)close)Example Output
Before:
After (with two connections):
Testing
@connection_idis properly setexamples/connection_identifier_test.cr) demonstrating the feature with multiple connectionsFixes #[issue-number]
Original prompt
Fixes #62
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.