Skip to content

Conversation

@jadamcrain
Copy link
Member

Refactors connection logging to make it less verbose during disrupted communication while maintaining visibility
into state transitions. Reused some of the refactored connection methods from @nslee333 branch.

Changes

  • Rename ChannelLoggingTypeChannelLoggingMode for better semantics
  • Add macro log_channel_event! to dispatch between INFO/DEBUG levels based on mode
  • Refactor TCP client: extract run_connection() and handle_failed_connection() methods to reduce nesting
  • Improve TLS error handling: use std::io::Error instead of String
  • Clarify logging levels: state transitions always at INFO/WARNING, other events respect the mode setting

Behavior

  • ChannelLoggingMode::Verbose (default): All connection events at INFO level
  • ChannelLoggingMode::StateChanges: Non-state-transition events at DEBUG, state changes at INFO/WARNING

Reduces log noise during connection failures while keeping critical state transitions visible.

@jadamcrain jadamcrain requested a review from nslee333 October 14, 2025 18:34
@gemini-code-assist
Copy link

Summary of Changes

Hello @jadamcrain, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a configurable logging mechanism for connection events, allowing users to tune the verbosity of channel-related logs. By refactoring connection handling and standardizing error types, it aims to reduce log noise during network disruptions while ensuring critical state transitions remain visible.

Highlights

  • Renamed ChannelLoggingType to ChannelLoggingMode: The enum controlling connection logging verbosity has been renamed from ChannelLoggingType to ChannelLoggingMode for improved semantic clarity.
  • Introduced log_channel_event! Macro: A new macro, log_channel_event!, was added to dispatch logging events to either INFO or DEBUG levels based on the configured ChannelLoggingMode, allowing for tunable verbosity.
  • Refactored TCP Client Connection Logic: The try_connect_and_run method in the TCP client was refactored into two distinct methods, run_connection and handle_failed_connection, to reduce nesting and enhance code readability.
  • Improved TLS Error Handling: TLS connection errors now return std::io::Error instead of a generic String, providing more structured and actionable error information.
  • Clarified Logging Behavior: State transitions (e.g., connected to disconnected) are consistently logged at INFO/WARNING levels, while other connection events now respect the ChannelLoggingMode setting.
  • Tunable Logging Modes: Two logging modes are available: Verbose (default, all events at INFO) and StateChanges (non-state events at DEBUG, state changes at INFO/WARNING), enabling users to reduce log noise during connection failures.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a valuable feature for tunable connection logging, which will help reduce log noise during connection issues. The refactoring of the TCP client into smaller, more focused methods like run_connection() and handle_failed_connection() significantly improves code readability and maintainability. The switch from String to std::io::Error for TLS error handling is also a great improvement for more structured error management. I have one suggestion to enhance the logging further.

Copy link
Member

@nslee333 nslee333 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jadamcrain jadamcrain merged commit 8036e26 into main Oct 14, 2025
25 checks passed
@jadamcrain jadamcrain deleted the feature/conn_logging branch October 14, 2025 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants