add: SQLite-backed structured logging with retention
Replace JSON/file logging with a logs.db (WAL) store. Thread the logger through the encoder and metadata client for debug instrumentation of every ffmpeg/ffprobe/opusenc invocation and OMDb/TVmaze request. API keys are redacted before request URLs are logged. Retention defaults to 7 days, overridable via log_retention_days in config.
This commit is contained in:
+7
-3
@@ -46,21 +46,21 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
log, err := logger.New(".")
|
||||
log, err := logger.New(".", cfg.LogRetentionDays)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Failed to initialize logger: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
defer log.Close()
|
||||
|
||||
enc := encoder.New()
|
||||
enc := encoder.New(log)
|
||||
if err := enc.CheckDeps(); err != nil {
|
||||
log.Error("Dependency check failed", err.Error())
|
||||
fmt.Fprintf(os.Stderr, "Dependency check failed: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
metaClient := metadata.NewClient(cfg.OMDBAPIKey)
|
||||
metaClient := metadata.NewClient(cfg.OMDBAPIKey, log)
|
||||
|
||||
ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
|
||||
defer cancel()
|
||||
@@ -128,11 +128,15 @@ func processFile(ctx context.Context, inputPath string, cfg *types.Config, enc *
|
||||
meta, err = metaClient.FetchSeriesMetadata(ctx, tvmazeID, season, episode)
|
||||
if err != nil {
|
||||
log.ErrorFile(inputPath, "Fetching series metadata", err.Error())
|
||||
} else if meta != nil {
|
||||
log.Info(fmt.Sprintf("TVmaze hit: %s S%sE%s - %s", meta.Collection, meta.Season, meta.Episode, meta.Title))
|
||||
}
|
||||
} else if imdbID != "" {
|
||||
meta, err = metaClient.FetchMovieMetadata(ctx, imdbID)
|
||||
if err != nil {
|
||||
log.ErrorFile(inputPath, "Fetching movie metadata", err.Error())
|
||||
} else if meta != nil {
|
||||
log.Info(fmt.Sprintf("OMDb hit: %s (%s)", meta.Title, meta.IMDBID))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user