From b3eb75646aea71f02f27582abc3ea3b4ec4e22e9 Mon Sep 17 00:00:00 2001 From: Kylesoda <249518290+kylesoda@users.noreply.github.com> Date: Mon, 30 Mar 2026 16:59:45 -0500 Subject: [PATCH] feat: add logrus logger --- cmd/main.go | 6 +++--- go.mod | 2 ++ go.sum | 4 ++++ internal/config/main.go | 6 +++--- scripts/reset-db/main.go | 8 ++++---- scripts/seed-db/main.go | 21 +++++++++++++-------- scripts/setup-db/main.go | 13 +++++++++---- 7 files changed, 38 insertions(+), 22 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index 9b0e9d3..b87563b 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -3,7 +3,6 @@ package main import ( "context" "fmt" - "log" "os" "git.ksdemosapps.com/kylesoda/pgx-learning/internal/config" @@ -11,6 +10,7 @@ import ( "git.ksdemosapps.com/kylesoda/pgx-learning/internal/db/postgres" "git.ksdemosapps.com/kylesoda/pgx-learning/internal/models" "git.ksdemosapps.com/kylesoda/pgx-learning/internal/repository" + "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -19,7 +19,7 @@ func main() { pool, err := db.Connect(ctx, config.Db.Url) if err != nil { - log.Fatal(err) + logrus.Fatal(err) } defer db.Close(pool) @@ -168,7 +168,7 @@ func main() { err = app.Run(os.Args) if err != nil { - log.Fatal(err) + logrus.Fatal(err) } } diff --git a/go.mod b/go.mod index 9b2b0ae..ce2d11f 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.25.7 require ( github.com/jackc/pgx/v5 v5.9.1 github.com/joho/godotenv v1.5.1 + github.com/sirupsen/logrus v1.9.4 github.com/urfave/cli/v2 v2.27.7 ) @@ -16,5 +17,6 @@ require ( github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect golang.org/x/sync v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.29.0 // indirect ) diff --git a/go.sum b/go.sum index 0e5d03a..f1bd5c7 100644 --- a/go.sum +++ b/go.sum @@ -17,6 +17,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= +github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -28,6 +30,8 @@ github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGC github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/config/main.go b/internal/config/main.go index 6bd7141..4247778 100644 --- a/internal/config/main.go +++ b/internal/config/main.go @@ -1,10 +1,10 @@ package config import ( - "log" "os" "github.com/joho/godotenv" + "github.com/sirupsen/logrus" ) type dbConfig struct { @@ -14,7 +14,7 @@ type dbConfig struct { func loadEnv() { err := godotenv.Load() if err != nil { - log.Println("Warning: could not load .env file") + logrus.Warn("Warning: could not load .env file") } } @@ -23,7 +23,7 @@ func getDbConfig() *dbConfig { dbUrl := os.Getenv("PG_FROM_DB_URL") if dbUrl == "" { - log.Fatal("PG_FROM_DB_URL environment variable not set") + logrus.Fatal("PG_FROM_DB_URL environment variable not set") } return &dbConfig{ diff --git a/scripts/reset-db/main.go b/scripts/reset-db/main.go index 275a28f..89286ac 100644 --- a/scripts/reset-db/main.go +++ b/scripts/reset-db/main.go @@ -3,11 +3,11 @@ package main import ( "context" "fmt" - "log" "time" "git.ksdemosapps.com/kylesoda/pgx-learning/internal/config" "github.com/jackc/pgx/v5/pgxpool" + "github.com/sirupsen/logrus" ) func dropTables(db *pgxpool.Pool, ctx context.Context) error { @@ -27,13 +27,13 @@ func main() { db, err := pgxpool.New(ctx, config.Db.Url) if err != nil { - log.Fatalf("Unable to create connection pool: %v", err) + logrus.Fatalf("Unable to create connection pool: %v", err) } if err := dropTables(db, ctx); err != nil { - log.Fatalf("Unexpected error: %v", err) + logrus.Fatalf("Unexpected error: %v", err) } else { - fmt.Println("Database reset completed succesfully") + logrus.Info("Database reset completed succesfully") } defer db.Close() diff --git a/scripts/seed-db/main.go b/scripts/seed-db/main.go index aba3162..7149318 100644 --- a/scripts/seed-db/main.go +++ b/scripts/seed-db/main.go @@ -3,7 +3,6 @@ package main import ( "context" "fmt" - "log" "math/rand" "time" @@ -11,6 +10,7 @@ import ( "git.ksdemosapps.com/kylesoda/pgx-learning/internal/models" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgxpool" + "github.com/sirupsen/logrus" ) func generateTasks(count int) []models.Task { @@ -46,32 +46,37 @@ func saveTasks(db *pgxpool.Pool, ctx context.Context, tasks []models.Task) error } duration := time.Since(start) - fmt.Printf("Se insertaron exitosamente %d registros en %v\n", rowsCopied, duration) + logrus.Infof("Se insertaron exitosamente %d registros en %v\n", rowsCopied, duration) return nil } func main() { - fmt.Println("Starting seed process") + logrus.SetFormatter(&logrus.TextFormatter{ + FullTimestamp: true, + TimestampFormat: time.StampMilli, + }) + + logrus.Info("Starting seed process") ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) defer cancel() db, err := pgxpool.New(ctx, config.Db.Url) if err != nil { - log.Fatalf("Unable to create connection pool: %v", err) + logrus.Fatalf("Unable to create connection pool: %v", err) } else { - fmt.Println("Successfully connected to the database") + logrus.Info("Successfully connected to the database") } defer db.Close() count := 100000 - fmt.Printf("Generando %d registros...\n", count) + logrus.Infof("Generando %d registros...\n", count) tasks := generateTasks(count) if err := saveTasks(db, ctx, tasks); err != nil { - log.Fatalf("Unexpected error: %v", err) + logrus.Fatalf("Unexpected error: %v", err) } else { - fmt.Println("Database seed completed succesfully") + logrus.Info("Database seed completed succesfully") } } diff --git a/scripts/setup-db/main.go b/scripts/setup-db/main.go index 170ca7d..b251b6b 100644 --- a/scripts/setup-db/main.go +++ b/scripts/setup-db/main.go @@ -3,11 +3,11 @@ package main import ( "context" "fmt" - "log" "time" "git.ksdemosapps.com/kylesoda/pgx-learning/internal/config" "github.com/jackc/pgx/v5/pgxpool" + "github.com/sirupsen/logrus" ) func createTasksTable(db *pgxpool.Pool, ctx context.Context) error { @@ -30,18 +30,23 @@ CREATE TABLE IF NOT EXISTS tasks ( } func main() { + logrus.SetFormatter(&logrus.TextFormatter{ + FullTimestamp: true, + TimestampFormat: time.StampMilli, + }) + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) defer cancel() db, err := pgxpool.New(ctx, config.Db.Url) if err != nil { - log.Fatalf("Unable to create connection pool: %v", err) + logrus.Fatalf("Unable to create connection pool: %v", err) } if err := createTasksTable(db, ctx); err != nil { - log.Fatalf("Unexpected error: %v", err) + logrus.Fatalf("Unexpected error: %v", err) } else { - fmt.Println("Database setup completed succesfully") + logrus.Info("Database setup completed succesfully") } defer db.Close()