summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-04 17:03:21 -0600
committermo khan <mo@mokhan.ca>2025-04-04 17:03:21 -0600
commit7a9de18ccec27dfa63e1b8076da0724b3cdd41ee (patch)
treed6d27740c363da3510a732e831b71fa9e8ef85a4 /pkg
parent0fc2735be3e2884bacfb17718d053d368965c8b2 (diff)
refactor: switch to zerolog logger
Diffstat (limited to 'pkg')
-rw-r--r--pkg/app/app.go6
-rw-r--r--pkg/authz/casbin.go10
-rw-r--r--pkg/authz/cedar.go4
-rw-r--r--pkg/authz/token.go4
-rw-r--r--pkg/log/init.go30
-rw-r--r--pkg/policies/init.go16
-rw-r--r--pkg/prxy/prxy.go6
-rw-r--r--pkg/srv/srv.go4
8 files changed, 27 insertions, 53 deletions
diff --git a/pkg/app/app.go b/pkg/app/app.go
index a8dedc10..861ce59a 100644
--- a/pkg/app/app.go
+++ b/pkg/app/app.go
@@ -1,15 +1,19 @@
package app
import (
+ "os"
+
+ "github.com/xlgmokha/x/pkg/log"
"gitlab.com/mokhax/spike/pkg/authz"
"gitlab.com/mokhax/spike/pkg/cfg"
"gitlab.com/mokhax/spike/pkg/srv"
)
func Start(bindAddr string) error {
+ logger := log.New(os.Stdout, log.Fields{"app": "gtwy"})
mux := authz.HTTP(authz.WithCasbin(), Routes())
return srv.Run(cfg.New(
bindAddr,
- cfg.WithMux(mux),
+ cfg.WithMux(log.HTTP(logger)(mux)),
))
}
diff --git a/pkg/authz/casbin.go b/pkg/authz/casbin.go
index 99dcc8ec..140bdb98 100644
--- a/pkg/authz/casbin.go
+++ b/pkg/authz/casbin.go
@@ -6,8 +6,8 @@ import (
"net/http"
"github.com/casbin/casbin/v3"
+ "github.com/xlgmokha/x/pkg/log"
"github.com/xlgmokha/x/pkg/x"
- xlog "gitlab.com/mokhax/spike/pkg/log"
)
func WithCasbin() Authorizer {
@@ -16,7 +16,7 @@ func WithCasbin() Authorizer {
return AuthorizerFunc(func(r *http.Request) bool {
host, _, err := net.SplitHostPort(r.Host)
if err != nil {
- xlog.WithFields(r, xlog.Fields{"error": err})
+ log.WithFields(r.Context(), log.Fields{"error": err})
return false
}
@@ -26,13 +26,13 @@ func WithCasbin() Authorizer {
}
ok, err := enforcer.Enforce(subject, host, r.Method, r.URL.Path)
if err != nil {
- xlog.WithFields(r, xlog.Fields{"error": err})
+ log.WithFields(r.Context(), log.Fields{"error": err})
return false
}
fmt.Printf("%v: %v -> %v %v%v\n", ok, subject, r.Method, host, r.URL.Path)
- xlog.WithFields(r, xlog.Fields{
- "ok": ok,
+ log.WithFields(r.Context(), log.Fields{
+ "authz": ok,
"subject": subject,
"action": r.Method,
"domain": host,
diff --git a/pkg/authz/cedar.go b/pkg/authz/cedar.go
index 9c20a3f4..18674c74 100644
--- a/pkg/authz/cedar.go
+++ b/pkg/authz/cedar.go
@@ -5,8 +5,8 @@ import (
"net/http"
cedar "github.com/cedar-policy/cedar-go"
+ "github.com/xlgmokha/x/pkg/log"
"gitlab.com/mokhax/spike/pkg/gid"
- xlog "gitlab.com/mokhax/spike/pkg/log"
"gitlab.com/mokhax/spike/pkg/policies"
)
@@ -14,7 +14,7 @@ func WithCedar() Authorizer {
return AuthorizerFunc(func(r *http.Request) bool {
host, _, err := net.SplitHostPort(r.Host)
if err != nil {
- xlog.WithFields(r, xlog.Fields{"error": err})
+ log.WithFields(r.Context(), log.Fields{"error": err})
return false
}
subject, found := TokenFrom(r).Subject()
diff --git a/pkg/authz/token.go b/pkg/authz/token.go
index 5985a0fc..2794bf4a 100644
--- a/pkg/authz/token.go
+++ b/pkg/authz/token.go
@@ -5,7 +5,7 @@ import (
"strings"
"github.com/lestrrat-go/jwx/v3/jwt"
- xlog "gitlab.com/mokhax/spike/pkg/log"
+ "github.com/xlgmokha/x/pkg/log"
)
func TokenFrom(r *http.Request) jwt.Token {
@@ -22,7 +22,7 @@ func TokenFrom(r *http.Request) jwt.Token {
)
if err != nil {
- xlog.WithFields(r, xlog.Fields{"error": err})
+ log.WithFields(r.Context(), log.Fields{"error": err})
return jwt.New()
}
diff --git a/pkg/log/init.go b/pkg/log/init.go
deleted file mode 100644
index 7d9456b6..00000000
--- a/pkg/log/init.go
+++ /dev/null
@@ -1,30 +0,0 @@
-package log
-
-import (
- "fmt"
- "log"
- "log/slog"
- "net/http"
- "os"
-
- "github.com/xlgmokha/x/pkg/env"
-)
-
-var Logger *slog.Logger
-var Default *log.Logger
-var Handler slog.Handler
-
-func init() {
- Handler = slog.NewJSONHandler(os.Stdout, nil)
- Logger = slog.New(Handler).With("env", env.Fetch("APP_ENV", "development"))
- Default = slog.NewLogLogger(Handler, slog.LevelInfo)
-}
-
-type Fields map[string]interface{}
-
-func WithFields(r *http.Request, fields Fields) {
- for key, value := range fields {
- attr := slog.String(key, fmt.Sprintf("%v", value))
- Logger.LogAttrs(r.Context(), slog.LevelDebug, "x", attr)
- }
-}
diff --git a/pkg/policies/init.go b/pkg/policies/init.go
index 42a23223..f5225a91 100644
--- a/pkg/policies/init.go
+++ b/pkg/policies/init.go
@@ -5,11 +5,13 @@ import (
_ "embed"
"fmt"
"io/fs"
+ "os"
"strings"
"github.com/cedar-policy/cedar-go"
"github.com/cedar-policy/cedar-go/types"
- xlog "gitlab.com/mokhax/spike/pkg/log"
+ "github.com/rs/zerolog"
+ "github.com/xlgmokha/x/pkg/log"
)
//go:embed *.cedar *.json
@@ -17,6 +19,7 @@ var files embed.FS
var All *cedar.PolicySet = cedar.NewPolicySet()
var Entities cedar.EntityMap = cedar.EntityMap{}
+var Logger *zerolog.Logger = log.New(os.Stderr, log.Fields{"pkg": "policies"})
func init() {
err := fs.WalkDir(files, ".", func(path string, d fs.DirEntry, err error) error {
@@ -56,7 +59,7 @@ func init() {
})
if err != nil {
- xlog.Default.Printf("error: %v\n", err)
+ Logger.Err(err)
}
}
@@ -65,14 +68,11 @@ func Allowed(request cedar.Request) bool {
fmt.Printf("%v: %v -> %v %v%v\n", ok, request.Principal, request.Action.ID, request.Context.Map(), request.Resource.ID)
if len(diagnostic.Errors) > 0 {
- for err := range diagnostic.Errors {
- xlog.Default.Printf("%v\n", err)
- }
+ log.New(os.Stderr, log.Fields{"errors": diagnostic.Errors})
+ Logger.Error().Fields(log.Fields{"errors": diagnostic.Errors}.ToMap())
}
if len(diagnostic.Reasons) > 0 {
- for reason := range diagnostic.Reasons {
- xlog.Default.Printf("%v\n", reason)
- }
+ Logger.Warn().Fields(log.Fields{"reasons": diagnostic.Reasons}.ToMap())
}
return ok == types.Allow
}
diff --git a/pkg/prxy/prxy.go b/pkg/prxy/prxy.go
index 809fdc19..43565bd3 100644
--- a/pkg/prxy/prxy.go
+++ b/pkg/prxy/prxy.go
@@ -7,8 +7,8 @@ import (
"net/http/httputil"
"net/url"
+ "github.com/xlgmokha/x/pkg/log"
"github.com/xlgmokha/x/pkg/x"
- xlog "gitlab.com/mokhax/spike/pkg/log"
)
func New(routes map[string]string) http.Handler {
@@ -21,7 +21,7 @@ func New(routes map[string]string) http.Handler {
Rewrite: func(r *httputil.ProxyRequest) {
host, _, err := net.SplitHostPort(r.In.Host)
if err != nil {
- xlog.WithFields(r.In, xlog.Fields{"error": err})
+ log.WithFields(r.In.Context(), log.Fields{"error": err})
return
}
@@ -37,7 +37,7 @@ func New(routes map[string]string) http.Handler {
return nil
},
ErrorHandler: func(w http.ResponseWriter, r *http.Request, err error) {
- xlog.WithFields(r, xlog.Fields{"error": err})
+ log.WithFields(r.Context(), log.Fields{"error": err})
},
}
}
diff --git a/pkg/srv/srv.go b/pkg/srv/srv.go
index ccd02e0f..e7189406 100644
--- a/pkg/srv/srv.go
+++ b/pkg/srv/srv.go
@@ -1,11 +1,11 @@
package srv
import (
+ "log"
"net/http"
"time"
"gitlab.com/mokhax/spike/pkg/cfg"
- xlog "gitlab.com/mokhax/spike/pkg/log"
)
func New(c *cfg.Config) *http.Server {
@@ -17,7 +17,7 @@ func New(c *cfg.Config) *http.Server {
ReadTimeout: 30 * time.Second,
WriteTimeout: 30 * time.Second,
IdleTimeout: 30 * time.Second,
- ErrorLog: xlog.Default,
+ ErrorLog: log.Default(),
}
}