Converted logging middleware to use new logger
This commit is contained in:
@@ -74,7 +74,11 @@ func GetLogger(
|
|||||||
} else {
|
} else {
|
||||||
output = consoleWriter
|
output = consoleWriter
|
||||||
}
|
}
|
||||||
logger := zerolog.New(output).With().Timestamp().Caller().Logger().Level(logLevel)
|
logger := zerolog.New(output).
|
||||||
|
With().
|
||||||
|
Timestamp().
|
||||||
|
Logger().
|
||||||
|
Level(logLevel)
|
||||||
|
|
||||||
return &logger, nil
|
return &logger, nil
|
||||||
}
|
}
|
||||||
|
|||||||
2
main.go
2
main.go
@@ -61,7 +61,7 @@ func run(ctx context.Context, w io.Writer, args map[string]string) error {
|
|||||||
}
|
}
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
|
||||||
srv := server.NewServer(config, conn)
|
srv := server.NewServer(config, logger, conn)
|
||||||
httpServer := &http.Server{
|
httpServer := &http.Server{
|
||||||
Addr: net.JoinHostPort(config.Host, config.Port),
|
Addr: net.JoinHostPort(config.Host, config.Port),
|
||||||
Handler: srv,
|
Handler: srv,
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
package middleware
|
package middleware
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/rs/zerolog"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Wraps the http.ResponseWriter, adding a statusCode field
|
// Wraps the http.ResponseWriter, adding a statusCode field
|
||||||
@@ -19,7 +20,7 @@ func (w *wrappedWriter) WriteHeader(statusCode int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Middleware to add logs to console with details of the request
|
// Middleware to add logs to console with details of the request
|
||||||
func Logging(next http.Handler) http.Handler {
|
func Logging(logger *zerolog.Logger, next http.Handler) http.Handler {
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
wrapped := &wrappedWriter{
|
wrapped := &wrappedWriter{
|
||||||
@@ -27,6 +28,10 @@ func Logging(next http.Handler) http.Handler {
|
|||||||
statusCode: http.StatusOK,
|
statusCode: http.StatusOK,
|
||||||
}
|
}
|
||||||
next.ServeHTTP(wrapped, r)
|
next.ServeHTTP(wrapped, r)
|
||||||
log.Println(wrapped.statusCode, r.Method, r.URL.Path, time.Since(start))
|
logger.Info().
|
||||||
|
Int("status", wrapped.statusCode).
|
||||||
|
Str("method", r.Method).
|
||||||
|
Str("resource", r.URL.Path).
|
||||||
|
Dur("time_elapsed", time.Since(start)).Msg("Served")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,16 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"projectreshoot/middleware"
|
"projectreshoot/middleware"
|
||||||
|
|
||||||
|
"github.com/rs/zerolog"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Returns a new http.Handler with all the routes and middleware added
|
// Returns a new http.Handler with all the routes and middleware added
|
||||||
func NewServer(config *Config, conn *sql.DB) http.Handler {
|
func NewServer(
|
||||||
|
config *Config,
|
||||||
|
logger *zerolog.Logger,
|
||||||
|
conn *sql.DB,
|
||||||
|
) http.Handler {
|
||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
addRoutes(
|
addRoutes(
|
||||||
mux,
|
mux,
|
||||||
@@ -16,6 +22,6 @@ func NewServer(config *Config, conn *sql.DB) http.Handler {
|
|||||||
conn,
|
conn,
|
||||||
)
|
)
|
||||||
var handler http.Handler = mux
|
var handler http.Handler = mux
|
||||||
handler = middleware.Logging(handler)
|
handler = middleware.Logging(logger, handler)
|
||||||
return handler
|
return handler
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user