an app.bsky.* indexer

Move to slog

Changed files
+11 -7
cmd
backfiller
+11 -7
cmd/backfiller/backfiller.go
···
"errors"
"fmt"
"log"
+
"log/slog"
"net/http"
"os"
"os/signal"
···
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
defer stop()
+
sl := slog.With("source", "backfiller")
+
newLogger := logger.New(
log.New(os.Stdout, "\n", log.LstdFlags),
logger.Config{
···
Colorful: false,
},
)
-
db, err := gorm.Open(sqlite.Open("state.db"), &gorm.Config{
Logger: newLogger,
})
if err != nil {
-
log.Fatalf("failed to connect database: %s", err)
+
sl.Error("failed to connect to database", "err", err)
}
db.AutoMigrate(&backfill.GormDBJob{})
store := backfill.NewGormstore(db)
···
"User-Agent": []string{"backfiller/0.1 (@edavis.dev)"},
})
if err != nil {
-
log.Fatalf("failed to connect to relay: %s", err)
+
sl.Error("failed to connect to relay", "err", err)
}
// start backfilling
···
// pump repos
go func(bf *backfill.Backfiller) {
if err := pumpRepos(context.TODO(), bf); err != nil {
-
log.Printf("failed pumping repos: %s", err)
+
sl.Error("failed pumping repos", "err", err)
}
}(bf)
···
}
sched := parallel.NewScheduler(16, 100, "firehose", rsc.EventHandler)
if err := events.HandleRepoStream(ctx, con, sched, nil); err != nil {
-
log.Fatalf("failed to start scheduler: %s", err)
+
sl.Error("failed to start scheduler", "err", err)
}
<-ctx.Done()
···
}
func pumpRepos(ctx context.Context, bf *backfill.Backfiller) error {
+
sl := slog.With("source", "pumpRepos")
+
xrpcc := &xrpc.Client{
Host: "https://bsky.network",
}
···
var curs string
for {
-
log.Printf("listing repos with cursor = %v", curs)
+
sl.Info("listing repos", "cursor", curs)
res, err := atproto.SyncListRepos(ctx, xrpcc, curs, 1000)
if err != nil {
return fmt.Errorf("error listing repos: %w", err)
···
for _, repo := range res.Repos {
_, err := jmstore.GetOrCreateJob(ctx, repo.Did, backfill.StateEnqueued)
if err != nil {
-
log.Printf("failed to create backfill job: %s", err)
+
sl.Warn("failed to create backfill job", "err", err)
continue
}
}