Add comprehensive godoc documentation to all packages
- Add package-level documentation with usage examples and architecture details - Document all public types, functions, and methods following godoc conventions - Remove unused logger.Error type and NewError function - Apply consistent documentation style across all packages Packages updated: - apitls: TLS certificate management with automatic renewal - config: Environment-based configuration system - config/depenv: Deployment environment handling - ekko: Enhanced Echo web framework wrapper - kafka: Kafka client wrapper with TLS support - logger: Structured logging with OpenTelemetry integration - tracing: OpenTelemetry distributed tracing setup - types: Shared data structures for NTP Pool project - xff/fastlyxff: Fastly CDN IP range management All tests pass after documentation changes.
This commit is contained in:
@@ -5,12 +5,24 @@ import (
|
||||
"log/slog"
|
||||
)
|
||||
|
||||
// stdLoggerish provides a bridge between legacy log interfaces and slog.
|
||||
// It implements common logging methods (Println, Printf, Fatalf) that
|
||||
// delegate to structured logging with a consistent key prefix.
|
||||
type stdLoggerish struct {
|
||||
key string
|
||||
log *slog.Logger
|
||||
f func(string, ...any)
|
||||
key string // Prefix key for all log messages
|
||||
log *slog.Logger // Underlying structured logger
|
||||
f func(string, ...any) // Log function (Info or Debug level)
|
||||
}
|
||||
|
||||
// NewStdLog creates a legacy-compatible logger that bridges to structured logging.
|
||||
// This is useful for third-party libraries that expect a standard log.Logger interface.
|
||||
//
|
||||
// Parameters:
|
||||
// - key: Prefix added to all log messages for identification
|
||||
// - debug: If true, logs at debug level; otherwise logs at info level
|
||||
// - log: Underlying slog.Logger (uses Setup() if nil)
|
||||
//
|
||||
// The returned logger implements Println, Printf, and Fatalf methods.
|
||||
func NewStdLog(key string, debug bool, log *slog.Logger) *stdLoggerish {
|
||||
if log == nil {
|
||||
log = Setup()
|
||||
@@ -27,14 +39,18 @@ func NewStdLog(key string, debug bool, log *slog.Logger) *stdLoggerish {
|
||||
return sl
|
||||
}
|
||||
|
||||
// Println logs the arguments using the configured log level with the instance key.
|
||||
func (l stdLoggerish) Println(msg ...any) {
|
||||
l.f(l.key, "msg", msg)
|
||||
}
|
||||
|
||||
// Printf logs a formatted message using the configured log level with the instance key.
|
||||
func (l stdLoggerish) Printf(msg string, args ...any) {
|
||||
l.f(l.key, "msg", fmt.Sprintf(msg, args...))
|
||||
}
|
||||
|
||||
// Fatalf logs a formatted error message and panics.
|
||||
// Note: This implementation panics instead of calling os.Exit for testability.
|
||||
func (l stdLoggerish) Fatalf(msg string, args ...any) {
|
||||
l.log.Error(l.key, "msg", fmt.Sprintf(msg, args...))
|
||||
panic("fatal error") // todo: does this make sense at all?
|
||||
|
Reference in New Issue
Block a user