u/DasKaroWow

▲ 3 r/golang

I've been building a small logging library in Go as a learning project: solislog.

It is intentionally simple and synchronous. No background goroutines, no async queue, and no required package-level global logger. The goal is to practice Go package design around io.Writer, contextual fields, multiple handlers, templates, JSON output, and context.Context propagation.

It currently supports:

  • multiple handlers
  • template-based text output
  • JSON output mode
  • contextual fields via Extra
  • bound loggers
  • context propagation helpers
  • configurable time format/location

I’m not trying to compete with slog, zap, or zerolog. This is mostly a small pre-v1 project to learn API design and make something clean enough to make the package docs readable on pkg.go.dev.

I’d appreciate feedback specifically on:

  • whether the public API feels Go-like
  • whether the handler/options model is reasonable
  • whether the template approach is too weird
  • what would make the README/examples clearer
u/DasKaroWow — 23 days ago