feat(observability): add structured logging foundation - #6
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Linked Issue
Fixes #5
Summary
Required Format
feat/structured-logging-foundationScope And Project Status
No performance claim is introduced.
Protocol, Safety, And Compatibility
Apply.The new package is an operational adapter only. It starts no goroutine, listener, queue, retry loop, storage, or protocol path. Log calls synchronously write bounded caller-supplied events and may apply writer backpressure. Callers remain responsible for attaching only bounded, allowlisted metadata; payloads, secrets, raw transactions, and provider error details are explicitly prohibited.
Validation
git diff --checkpython3 scripts/check_docs.pygo mod verifyand a cleango mod tidydiffgo vet ./...go test -count=1 -mod=readonly ./...go test -race -count=1 -mod=readonly ./...python3 scripts/check_go_architecture.pyFocused tests cover JSON fields, timestamp format, component derivation, concurrent monotonic sequences, level filtering, console output, disabled logging, invalid enums, nil and typed-nil writers, uninitialized use, and zerolog global-state isolation. Protocol vectors, model, Byzantine, partition, recovery, snapshot, chaos, and performance tests are not applicable because this PR changes no protocol, network, storage, lifecycle, or asynchronous path.
Risk And Rollback
The main operational tradeoff is synchronous writer backpressure; this is intentional so the first safety-oriented foundation cannot silently drop events. Console formatting adds zerolog's terminal-formatting transitive dependencies. Roll back by reverting this PR; no schema, wire format, persisted state, migration, or compatibility transition is involved.