Skip to content

[logger]: Add zerolog-backed logger package#45

Merged
pseudomuto merged 1 commit into
mainfrom
logger_package
Jun 24, 2026
Merged

[logger]: Add zerolog-backed logger package#45
pseudomuto merged 1 commit into
mainfrom
logger_package

Conversation

@pseudomuto

Copy link
Copy Markdown
Collaborator

The proxy logged through go.temporal.io/server/common/log, which dragged in the entire Temporal server module (and its transitive deps) just for a logging interface. That is a heavy dependency to carry for the small slice of functionality actually used.

Add pkg/logger that defines a small leveled, structured Logger interface with a zerolog-backed implementation (plus noop and test loggers). The tag subpackage structures key/value pairs.

The package also exposes a configurable default logger and package-level helpers for callers that do not thread a Logger through.

@pseudomuto pseudomuto requested a review from a team as a code owner June 24, 2026 14:39
@pseudomuto pseudomuto requested a review from Copilot June 24, 2026 14:40

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a lightweight in-repo logging abstraction to avoid depending on go.temporal.io/server/common/log (and the full Temporal server module) for the proxy’s logging needs.

Changes:

  • Introduces pkg/logger (level + structured Logger interface) with a zerolog-backed implementation plus noop and in-memory test loggers.
  • Adds pkg/logger/tag for typed key/value structured fields.
  • Migrates server wiring and CLI startup logging to the new logger and updates module dependencies (go.mod/go.sum) accordingly.

Reviewed changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
pkg/logger/zero.go Adds ZeroLogger implementation backed by zerolog.
pkg/logger/zero_test.go Tests level filtering, tags, and With() behavior for ZeroLogger.
pkg/logger/test.go Adds in-memory TestLogger for assertions in tests.
pkg/logger/test_test.go Tests TestLogger recording, With() chaining/sharing, and concurrency safety.
pkg/logger/tag/tag.go Defines Tag and helper constructors (String, Component, Error, Stringer).
pkg/logger/tag/tag_test.go Tests tag helper constructors.
pkg/logger/tag/doc.go Package docs for tag.
pkg/logger/noop.go Adds NoopLogger implementation.
pkg/logger/noop_test.go Tests NoopLogger behavior (no panics, With identity).
pkg/logger/logger.go Defines Logger interface, levels, default logger, and package-level helpers.
pkg/logger/logger_test.go Tests ParseLevel.
pkg/logger/doc.go Package docs for logger.
internal/server/server.go Switches server logging from Temporal server logger to pkg/logger.
internal/server/server_test.go Updates server tests to use logger.TestLogger instead of an ad-hoc recorder.
internal/server/fx.go Updates fx params/wiring to accept optional logger.Logger.
internal/server/fx_test.go Updates fx test to provide logger.NewNoopLogger().
cmd/proxy/serve.go Creates and provides a ZeroLogger from CLI flags; updates startup error logging.
go.mod Drops go.temporal.io/server; adds github.com/rs/zerolog.
go.sum Updates sums to reflect dependency changes (remove Temporal server transitive deps, add zerolog deps).

Comment thread pkg/logger/tag/tag.go
Comment thread pkg/logger/logger.go Outdated
Comment thread pkg/logger/logger.go Outdated
Comment thread pkg/logger/logger.go Outdated
The proxy logged through go.temporal.io/server/common/log, which dragged
in the entire Temporal server module (and its transitive deps) just for a
logging interface. That is a heavy dependency to carry for the small slice
of functionality actually used.

Add pkg/logger that defines a small leveled, structured Logger
interface with a zerolog-backed implementation (plus noop and test
loggers). The tag subpackage structures key/value pairs.

The package also exposes a configurable default logger and package-level
helpers for callers that do not thread a Logger through.
@pseudomuto pseudomuto merged commit 0e7d6df into main Jun 24, 2026
6 checks passed
@pseudomuto pseudomuto deleted the logger_package branch June 24, 2026 17:20
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