• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tecnickcom / nurago / 29215481387
100%

Build:
DEFAULT BRANCH: main
Ran 13 Jul 2026 12:34AM UTC
Jobs 1
Files 191
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

13 Jul 2026 12:30AM UTC coverage: 100.0%. Remained the same
29215481387

push

github

nicolaasuni
fix(logsrv)!: rewrite the zerolog slog.Handler for correctness and split it into focused files

The handler truncated timestamps, could take the process down, could emit unparseable lines, and disagreed with the sibling logutil backend about what an attribute renders. Split into logsrv.go (docs and constructors), handler.go, encode.go and writer.go.

Write timestamps explicitly as RFC 3339 with nanosecond precision and durations as a nanosecond count, matching the standard library, instead of through zerolog's process-global TimeFieldFormat and DurationFieldUnit, whose defaults truncated every timestamp to a whole second and rendered durations in milliseconds.

Recover a panic raised while a value renders itself (Error, MarshalJSON, MarshalText, MarshalZerologObject) and write slog's "!PANIC" sentinel. It previously took the process down, or left an object that was never closed, swallowing the message and the trace ID into an unparseable line, and through a baked With(...) that corruption was replayed on every subsequent record.

Mirror zerolog's AnErr dispatch, invoking the process-global ErrorMarshalFunc at most once per error attribute (it was invoked twice, so a stateful hook's second result reached the wire). A typed-nil error writes no field, tested before the hook so the logutil backend — which can see neither zerolog's interfaces nor its globals — can mirror the rule.

Deduplicate the trace ID on every path (record attribute, WithAttrs/With, Config.CommonAttr, an inlined group, a root group under the key), deciding suppression from what was actually written, so an elided field leaves the injected value in place and a record never ships with no trace_id.

Elide a group that yields no field instead of emitting a bare "{}", and return the unused pooled zerolog Event to the pool; follow slog's *slog.Source rules for the caller location, for both attributes and the Config.Source field; return the destination's write error from Handle; and in Format... (continued)

16310 of 16310 relevant lines covered (100.0%)

997.91 hits per line

Jobs
ID Job ID Ran Files Coverage
1 29215481387.1 13 Jul 2026 12:34AM UTC 191
100.0
GitHub Action Run
Source Files on build 29215481387
  • Tree
  • List 191
  • Changed 14
  • Source Changed 14
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29215481387
  • 566cfc95 on github
  • Prev Build on main (#29168117404)
  • Next Build on main (#29262578350)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc