Skip to content

Commit 51e548d

Browse files
authored
feat: add request logs (#23)
* fix: update dev commands * feat: add middleware for logging
1 parent 35a459e commit 51e548d

File tree

3 files changed

+34
-3
lines changed

3 files changed

+34
-3
lines changed

Makefile

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ vet: ## Run go vet against code.
2525
go vet ./...
2626

2727
run-server: fmt vet ## Run server.
28-
go run *.go serve --db-dsn ./test.sqlite3?_journal_mode=WAL --log-devel --log-level 12
28+
echo "test" > local_dev.token
29+
go run . serve --db-dsn ./test.sqlite3?_journal_mode=WAL --log-devel --log-level 12 --auth-token-file local_dev.token
2930

3031
run-migrate: fmt vet ## Run migration.
31-
go run *.go migrate --db-dsn ./test.sqlite3?_journal_mode=WAL --log-devel --log-level 12 ./data
32+
go run . migrate --db-dsn ./test.sqlite3?_journal_mode=WAL --log-devel --log-level 12 ./data
3233

3334
##@ Build
3435

server.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"time"
1010

1111
"github.com/go-chi/chi/v5"
12+
"github.com/go-chi/chi/v5/middleware"
1213
"github.com/go-chi/cors"
1314
"github.com/go-logr/logr"
1415
"github.com/jmoiron/sqlx"
@@ -86,7 +87,12 @@ func NewServer(opts *ServerOptions) (*dbServer, error) {
8687
serverMux := chi.NewRouter()
8788

8889
// TODO: allow specifying cors config from cli / table
89-
serverMux.Use(cors.AllowAll().Handler)
90+
serverMux.Use(
91+
middleware.RequestID,
92+
middleware.RealIP,
93+
serverLogger(rv.logger),
94+
cors.AllowAll().Handler,
95+
)
9096

9197
{
9298
serverMux.

server_utils.go

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"net/http"
6+
7+
"github.com/go-chi/chi/v5/middleware"
8+
"github.com/go-logr/logr"
9+
)
10+
11+
type httpLogger struct {
12+
logr.Logger
13+
}
14+
15+
func (l httpLogger) Print(v ...interface{}) {
16+
l.Info(fmt.Sprint(v...))
17+
}
18+
19+
func serverLogger(logr logr.Logger) func(http.Handler) http.Handler {
20+
formatter := &middleware.DefaultLogFormatter{
21+
Logger: httpLogger{logr},
22+
}
23+
return middleware.RequestLogger(formatter)
24+
}

0 commit comments

Comments
 (0)