Add custom logger with source location tracking and remove verbose database logs

- Create internal/logger package with Logger wrapper around slog
- Logger automatically adds source file, line number, and function name to all log entries
- Use golang.org/x/term to properly detect if stdout is a terminal
- Replace all slog.Logger usage with logger.Logger throughout the codebase
- Remove verbose logging from database GetStats() method
- Update all constructors and dependencies to use the new logger
This commit is contained in:
2025-07-28 01:14:51 +02:00
parent 3f06955214
commit 67f6b78aaa
22 changed files with 212 additions and 97 deletions

View File

@@ -7,13 +7,13 @@ import (
"context"
"encoding/json"
"fmt"
"log/slog"
"net/http"
"os"
"sync"
"sync/atomic"
"time"
"git.eeqj.de/sneak/routewatch/internal/logger"
"git.eeqj.de/sneak/routewatch/internal/metrics"
"git.eeqj.de/sneak/routewatch/internal/ristypes"
)
@@ -63,7 +63,7 @@ type handlerInfo struct {
// Streamer handles streaming BGP updates from RIS Live
type Streamer struct {
logger *slog.Logger
logger *logger.Logger
client *http.Client
handlers []*handlerInfo
rawHandler RawMessageHandler
@@ -75,7 +75,7 @@ type Streamer struct {
}
// New creates a new RIS streamer
func New(logger *slog.Logger, metrics *metrics.Tracker) *Streamer {
func New(logger *logger.Logger, metrics *metrics.Tracker) *Streamer {
return &Streamer{
logger: logger,
client: &http.Client{

View File

@@ -3,12 +3,12 @@ package streamer
import (
"testing"
"git.eeqj.de/sneak/routewatch/internal/logger"
"git.eeqj.de/sneak/routewatch/internal/metrics"
"log/slog"
)
func TestNewStreamer(t *testing.T) {
logger := slog.Default()
logger := logger.New()
metricsTracker := metrics.New()
s := New(logger, metricsTracker)