-
Notifications
You must be signed in to change notification settings - Fork 124
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
Option using fields in snake_case. #995
Conversation
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.
why is this feature necessary ?
we can't support every spelling, if another spelling should be enabled, we have to add another much more generic way to not extend the configuration for each spelling to customize it
Often JSON keys in text presentation used as snake case. As variant 2: adding new keys (example FieldResBodySC etc) and developer will set in option Fields. |
@ReneWerner87 snake_case is pretty common with JSON; ref https://developer.apple.com/documentation/foundation/jsondecoder/keydecodingstrategy/convertfromsnakecase# |
Ok valid |
WalkthroughThe recent update enriches the logging capabilities of the library by introducing additional fields such as response body, query parameters, bytes received, bytes sent, request ID, and both request and response headers. It also offers a new configuration option, Changes
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
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.
Review Status
Actionable comments generated: 1
Configuration used: CodeRabbit UI
Files selected for processing (3)
- fiberzerolog/README.md (1 hunks)
- fiberzerolog/config.go (3 hunks)
- fiberzerolog/zerolog_test.go (2 hunks)
Additional comments: 5
fiberzerolog/README.md (1)
- 42-42: The addition of the
FieldsSnakeCase
option to the README is clear and well-documented. It effectively communicates the purpose and usage of the new feature, including examples of the output format based on the option's value.fiberzerolog/config.go (2)
- 36-42: The addition of snake_case constants for log fields is correctly implemented. These constants provide a clear and maintainable way to switch between camelCase and snake_case representations based on the
FieldsSnakeCase
configuration.- 98-103: The
FieldsSnakeCase
option is correctly added to theConfig
struct with a clear description and default value. This addition follows best practices for configurable middleware in Go, allowing users to easily enable or disable snake_case field names in their logs.fiberzerolog/zerolog_test.go (2)
- 16-16: The addition of the
requestid
middleware import is necessary for the new testTest_FieldsSnakeCase
, which checks the logging of fields in snake_case. This import is correctly placed and used within the test setup.- 475-535: The
Test_FieldsSnakeCase
function is well-implemented, thoroughly testing theFieldsSnakeCase
feature by asserting the log output format. It covers various fields and configurations, ensuring the feature works as expected. Great job on covering different aspects of the feature in a single test.
Will merge it tomorrow |
Hi!
Added option FieldsSnakeCase:bool
Use snake case for fields: FieldResBody, FieldQueryParams, FieldBytesReceived, FieldBytesSent, FieldRequestId, FieldReqHeaders, FieldResHeaders.
If false (default):
{"method":"POST", "resBody":"v", "queryParams":"v"}
If true:
{"method":"POST", "res_body":"v", "query_params":"v"}
Summary by CodeRabbit