refactor: remove abstract-logging and use optional chaining for logger #6381
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.
This PR is an experiment to measure the performance impact of removing
abstract-loggingand using native optional chaining (?.) instead.Summary
abstract-loggingdependencynullwhenlogger: false?.) for all logger method callsnullloggerChanges
Core Changes
lib/logger-factory.js: Returns{ logger: null, hasLogger: false }instead of abstract-logging instance?.operator (e.g.,logger?.info())?.operator (e.g.,logger?.[kDisableRequestLogging])Breaking Changes
logger: false,fastify.logis nownullinstead of a no-op logger objectfastify.logwithout optional chaining will throwTest Changes
nullloggerlogger: truePerformance Impact
This PR exists to benchmark the performance impact of using optional chaining vs abstract-logging.
The hypothesis is that optional chaining may have a performance cost compared to calling no-op functions. This needs to be measured before considering this change for production.
Test Plan
Questions to Answer
?.operator vs calling no-op functions?🤖 Generated with Claude Code