added query logger

This commit is contained in:
Fran Jurmanović
2022-06-15 18:46:16 +02:00
parent ed2f5d47c8
commit e43a005192
6 changed files with 71 additions and 3 deletions

View File

@@ -9,7 +9,7 @@ tasks:
- ./bin/api
migrate:
cmds:
- go run cmd/migrate/main.go
- go build -o "./bin/migrate.exe" "./cmd/migrate/main.go" && ./bin/migrate.exe
build-run:
cmds:
- go build -o "./bin/api.exe" "./cmd/api/main.go" && ./bin/api.exe

View File

@@ -2,6 +2,7 @@ package main
import (
"context"
"log"
"os"
"wallet-api/pkg/api"
"wallet-api/pkg/middleware"
@@ -20,6 +21,12 @@ func main() {
r := gin.New()
r.Use(middleware.CORSMiddleware())
file, err := os.OpenFile("logs.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0666)
if err != nil {
log.Print("Cannot open file logs.txt")
}
log.SetOutput(file)
conn := db.CreateConnection(ctx, dbUrl)
api.Init(r, conn)

0
logs.txt Normal file
View File

View File

@@ -18,7 +18,6 @@ type UsersService struct {
Db *pg.DB
}
/*
Create
@@ -82,7 +81,11 @@ func (us *UsersService) Login(ctx context.Context, loginBody *models.Login) (*mo
exceptionReturn := new(models.Exception)
tokenPayload := new(models.Token)
db.Model(check).Where("? = ?", pg.Ident("email"), loginBody.Email).Select()
tx, _ := db.Begin()
defer tx.Rollback()
tx.Model(check).Where("? = ?", pg.Ident("email"), loginBody.Email).Select()
if check.Email == "" {
exceptionReturn.Message = "Email not found"
exceptionReturn.ErrorCode = "400103"
@@ -109,6 +112,8 @@ func (us *UsersService) Login(ctx context.Context, loginBody *models.Login) (*mo
tokenPayload.Token = token
tx.Commit()
return tokenPayload, exceptionReturn
}

View File

@@ -3,15 +3,43 @@ package db
import (
"context"
"fmt"
"log"
"os"
"wallet-api/pkg/utl/common"
"github.com/go-pg/pg/v10"
)
type LoggerHook struct {
QueryLogger *log.Logger
}
func (e *LoggerHook) BeforeQuery(ctx context.Context, qe *pg.QueryEvent) (context.Context, error) {
return context.Background(), nil
}
func (e *LoggerHook) AfterQuery(ctx context.Context, qe *pg.QueryEvent) error {
if qe.Err != nil {
e.QueryLogger.Println(qe.Err)
} else {
fmtdQry, err := qe.FormattedQuery()
if err != nil {
return err
}
e.QueryLogger.Println(string(fmtdQry))
}
return nil
}
func CreateConnection(ctx context.Context, dbUrl string) *pg.DB {
opt, err := pg.ParseURL(dbUrl)
common.CheckError(err)
file, err := os.OpenFile("querys.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0666)
common.CheckError(err)
QueryLogger := log.New(file, "Query: ", log.Ldate|log.Ltime|log.Lshortfile)
conn := pg.Connect(opt)
loggerHook := LoggerHook{QueryLogger}
conn.AddQueryHook(&loggerHook)
db := conn.WithContext(ctx)
fmt.Println("Successfully connected!")

28
querys.txt Normal file
View File

@@ -0,0 +1,28 @@
Query: 2022/06/15 18:36:12 db.go:24: [83 69 76 69 67 84 32 34 117 115 101 114 115 34 46 34 105 100 34 44 32 34 117 115 101 114 115 34 46 34 100 97 116 101 95 99 114 101 97 116 101 100 34 44 32 34 117 115 101 114 115 34 46 34 100 97 116 101 95 117 112 100 97 116 101 100 34 44 32 34 117 115 101 114 115 34 46 34 105 115 95 97 99 116 105 118 101 34 44 32 34 117 115 101 114 115 34 46 34 117 115 101 114 110 97 109 101 34 44 32 34 117 115 101 114 115 34 46 34 112 97 115 115 119 111 114 100 34 44 32 34 117 115 101 114 115 34 46 34 101 109 97 105 108 34 32 70 82 79 77 32 34 117 115 101 114 115 34 32 65 83 32 34 117 115 101 114 115 34 32 87 72 69 82 69 32 40 34 101 109 97 105 108 34 32 61 32 39 39 41] <nil>
Query: 2022/06/15 18:36:20 db.go:24: [66 69 71 73 78] <nil>
Query: 2022/06/15 18:36:20 db.go:24: [83 69 76 69 67 84 32 34 117 115 101 114 115 34 46 34 105 100 34 44 32 34 117 115 101 114 115 34 46 34 100 97 116 101 95 99 114 101 97 116 101 100 34 44 32 34 117 115 101 114 115 34 46 34 100 97 116 101 95 117 112 100 97 116 101 100 34 44 32 34 117 115 101 114 115 34 46 34 105 115 95 97 99 116 105 118 101 34 44 32 34 117 115 101 114 115 34 46 34 117 115 101 114 110 97 109 101 34 44 32 34 117 115 101 114 115 34 46 34 112 97 115 115 119 111 114 100 34 44 32 34 117 115 101 114 115 34 46 34 101 109 97 105 108 34 32 70 82 79 77 32 34 117 115 101 114 115 34 32 65 83 32 34 117 115 101 114 115 34 32 87 72 69 82 69 32 40 34 117 115 101 114 110 97 109 101 34 32 61 32 39 121 117 114 109 97 39 41 32 79 82 32 40 34 101 109 97 105 108 34 32 61 32 39 39 41] <nil>
Query: 2022/06/15 18:36:20 db.go:22: ERROR #23502 null value in column "email" of relation "users" violates not-null constraint
Query: 2022/06/15 18:36:20 db.go:24: [67 79 77 77 73 84] <nil>
Query: 2022/06/15 18:36:20 db.go:22: pg: transaction has already been committed or rolled back
Query: 2022/06/15 18:37:07 db.go:24: [66 69 71 73 78] <nil>
Query: 2022/06/15 18:38:44 db.go:28: BEGIN
Query: 2022/06/15 18:38:44 db.go:28: SELECT "users"."id", "users"."date_created", "users"."date_updated", "users"."is_active", "users"."username", "users"."password", "users"."email" FROM "users" AS "users" WHERE ("username" = 'fjurma12@gmail.com') OR ("email" = '')
Query: 2022/06/15 18:38:44 db.go:22: ERROR #23502 null value in column "email" of relation "users" violates not-null constraint
Query: 2022/06/15 18:38:44 db.go:28: COMMIT
Query: 2022/06/15 18:38:44 db.go:22: pg: transaction has already been committed or rolled back
Query: 2022/06/15 18:38:49 db.go:28: BEGIN
Query: 2022/06/15 18:38:49 db.go:28: SELECT "users"."id", "users"."date_created", "users"."date_updated", "users"."is_active", "users"."username", "users"."password", "users"."email" FROM "users" AS "users" WHERE ("username" = '') OR ("email" = 'fjurma12@gmail.com')
Query: 2022/06/15 18:38:49 db.go:22: ERROR #23502 null value in column "username" of relation "users" violates not-null constraint
Query: 2022/06/15 18:38:49 db.go:28: COMMIT
Query: 2022/06/15 18:38:49 db.go:22: pg: transaction has already been committed or rolled back
Query: 2022/06/15 18:39:31 db.go:28: BEGIN
Query: 2022/06/15 18:39:31 db.go:28: SELECT "users"."id", "users"."date_created", "users"."date_updated", "users"."is_active", "users"."username", "users"."password", "users"."email" FROM "users" AS "users" WHERE ("username" = 'yurma') OR ("email" = 'fjurma12@gmail.com')
Query: 2022/06/15 18:39:31 db.go:28: INSERT INTO "users" ("id", "date_created", "date_updated", "is_active", "username", "password", "email") VALUES ('b2c8bb5e-fcb7-4e91-9c20-2441dd6a1422', '2022-06-15 16:39:31.6930018+00:00:00', '2022-06-15 16:39:31.6930018+00:00:00', TRUE, 'yurma', '$2a$10$Uf/PlQtyt6J671sdvDskm.6m5OTgMUPNQlaqyG8rUQamGnR3Zi2Z.', 'fjurma12@gmail.com')
Query: 2022/06/15 18:39:31 db.go:28: COMMIT
Query: 2022/06/15 18:39:31 db.go:22: pg: transaction has already been committed or rolled back
Query: 2022/06/15 18:40:26 db.go:28: SELECT "users"."id", "users"."date_created", "users"."date_updated", "users"."is_active", "users"."username", "users"."password", "users"."email" FROM "users" AS "users" WHERE ("email" = '')
Query: 2022/06/15 18:40:36 db.go:28: SELECT "users"."id", "users"."date_created", "users"."date_updated", "users"."is_active", "users"."username", "users"."password", "users"."email" FROM "users" AS "users" WHERE ("email" = 'fjurma12@gmail.com')
Query: 2022/06/15 18:42:30 db.go:28: BEGIN
Query: 2022/06/15 18:42:30 db.go:28: SELECT "users"."id", "users"."date_created", "users"."date_updated", "users"."is_active", "users"."username", "users"."password", "users"."email" FROM "users" AS "users" WHERE ("email" = 'fjurma12@gmail.com')
Query: 2022/06/15 18:42:30 db.go:28: COMMIT
Query: 2022/06/15 18:42:30 db.go:22: pg: transaction has already been committed or rolled back