refactor(logging): use slog instead of logrus (#501)

Everything uses slog now and the logger is part of every struct
This commit is contained in:
Alexis Couvreur
2025-02-02 20:01:51 -08:00
committed by GitHub
parent f29b13a55a
commit 8844a36e4a
32 changed files with 445 additions and 453 deletions

View File

@@ -2,6 +2,7 @@ package api
import (
"github.com/gin-gonic/gin"
"github.com/neilotoole/slogt"
"github.com/sablierapp/sablier/app/http/routes"
"github.com/sablierapp/sablier/app/sessions/sessionstest"
"github.com/sablierapp/sablier/app/theme"
@@ -17,7 +18,7 @@ func NewApiTest(t *testing.T) (app *gin.Engine, router *gin.RouterGroup, strateg
t.Helper()
gin.SetMode(gin.TestMode)
ctrl := gomock.NewController(t)
th, err := theme.New()
th, err := theme.New(slogt.New(t))
assert.NilError(t, err)
app = gin.New()

View File

@@ -11,7 +11,6 @@ import (
"github.com/sablierapp/sablier/app/instance"
"github.com/sablierapp/sablier/app/sessions"
"github.com/sablierapp/sablier/app/theme"
log "github.com/sirupsen/logrus"
"sort"
"strconv"
"strings"
@@ -44,9 +43,9 @@ func StartDynamic(router *gin.RouterGroup, s *routes.ServeStrategy) {
var sessionState *sessions.SessionState
var err error
if len(request.Names) > 0 {
sessionState, err = s.SessionsManager.RequestSession(request.Names, request.SessionDuration)
sessionState, err = s.SessionsManager.RequestSession(c, request.Names, request.SessionDuration)
} else {
sessionState, err = s.SessionsManager.RequestSessionGroup(request.Group, request.SessionDuration)
sessionState, err = s.SessionsManager.RequestSessionGroup(c, request.Group, request.SessionDuration)
var groupNotFoundError sessions.ErrGroupNotFound
if errors.As(err, &groupNotFoundError) {
AbortWithProblemDetail(c, ProblemGroupNotFound(groupNotFoundError))
@@ -93,7 +92,6 @@ func StartDynamic(router *gin.RouterGroup, s *routes.ServeStrategy) {
func sessionStateToRenderOptionsInstanceState(sessionState *sessions.SessionState) (instances []theme.Instance) {
if sessionState == nil {
log.Warnf("sessionStateToRenderOptionsInstanceState: sessionState is nil")
return
}
@@ -108,7 +106,7 @@ func sessionStateToRenderOptionsInstanceState(sessionState *sessions.SessionStat
return
}
func instanceStateToRenderOptionsRequestState(instanceState *instance.State) theme.Instance {
func instanceStateToRenderOptionsRequestState(instanceState instance.State) theme.Instance {
var err error
if instanceState.Message == "" {

View File

@@ -17,11 +17,11 @@ func session() *sessions.SessionState {
return &sessions.SessionState{
Instances: map[string]sessions.InstanceState{
"test": {
Instance: &state,
Instance: state,
Error: nil,
},
"test2": {
Instance: &state2,
Instance: state2,
Error: nil,
},
},
@@ -53,7 +53,7 @@ func TestStartDynamic(t *testing.T) {
t.Run("StartDynamicThemeNotFound", func(t *testing.T) {
app, router, strategy, m := NewApiTest(t)
StartDynamic(router, strategy)
m.EXPECT().RequestSessionGroup("test", gomock.Any()).Return(session(), nil)
m.EXPECT().RequestSessionGroup(gomock.Any(), "test", gomock.Any()).Return(session(), nil)
r := PerformRequest(app, "GET", "/api/strategies/dynamic?group=test&theme=invalid")
assert.Equal(t, http.StatusNotFound, r.Code)
assert.Equal(t, rfc7807.JSONMediaType, r.Header().Get("Content-Type"))
@@ -61,7 +61,7 @@ func TestStartDynamic(t *testing.T) {
t.Run("StartDynamicByNames", func(t *testing.T) {
app, router, strategy, m := NewApiTest(t)
StartDynamic(router, strategy)
m.EXPECT().RequestSession([]string{"test"}, gomock.Any()).Return(session(), nil)
m.EXPECT().RequestSession(gomock.Any(), []string{"test"}, gomock.Any()).Return(session(), nil)
r := PerformRequest(app, "GET", "/api/strategies/dynamic?names=test")
assert.Equal(t, http.StatusOK, r.Code)
assert.Equal(t, SablierStatusReady, r.Header().Get(SablierStatusHeader))
@@ -69,7 +69,7 @@ func TestStartDynamic(t *testing.T) {
t.Run("StartDynamicByGroup", func(t *testing.T) {
app, router, strategy, m := NewApiTest(t)
StartDynamic(router, strategy)
m.EXPECT().RequestSessionGroup("test", gomock.Any()).Return(session(), nil)
m.EXPECT().RequestSessionGroup(gomock.Any(), "test", gomock.Any()).Return(session(), nil)
r := PerformRequest(app, "GET", "/api/strategies/dynamic?group=test")
assert.Equal(t, http.StatusOK, r.Code)
assert.Equal(t, SablierStatusReady, r.Header().Get(SablierStatusHeader))
@@ -77,7 +77,7 @@ func TestStartDynamic(t *testing.T) {
t.Run("StartDynamicErrGroupNotFound", func(t *testing.T) {
app, router, strategy, m := NewApiTest(t)
StartDynamic(router, strategy)
m.EXPECT().RequestSessionGroup("test", gomock.Any()).Return(nil, sessions.ErrGroupNotFound{
m.EXPECT().RequestSessionGroup(gomock.Any(), "test", gomock.Any()).Return(nil, sessions.ErrGroupNotFound{
Group: "test",
AvailableGroups: []string{"test1", "test2"},
})
@@ -88,7 +88,7 @@ func TestStartDynamic(t *testing.T) {
t.Run("StartDynamicError", func(t *testing.T) {
app, router, strategy, m := NewApiTest(t)
StartDynamic(router, strategy)
m.EXPECT().RequestSessionGroup("test", gomock.Any()).Return(nil, errors.New("unknown error"))
m.EXPECT().RequestSessionGroup(gomock.Any(), "test", gomock.Any()).Return(nil, errors.New("unknown error"))
r := PerformRequest(app, "GET", "/api/strategies/dynamic?group=test")
assert.Equal(t, http.StatusInternalServerError, r.Code)
assert.Equal(t, rfc7807.JSONMediaType, r.Header().Get("Content-Type"))
@@ -96,7 +96,7 @@ func TestStartDynamic(t *testing.T) {
t.Run("StartDynamicSessionNil", func(t *testing.T) {
app, router, strategy, m := NewApiTest(t)
StartDynamic(router, strategy)
m.EXPECT().RequestSessionGroup("test", gomock.Any()).Return(nil, nil)
m.EXPECT().RequestSessionGroup(gomock.Any(), "test", gomock.Any()).Return(nil, nil)
r := PerformRequest(app, "GET", "/api/strategies/dynamic?group=test")
assert.Equal(t, http.StatusInternalServerError, r.Code)
assert.Equal(t, rfc7807.JSONMediaType, r.Header().Get("Content-Type"))

View File

@@ -42,7 +42,9 @@ func Start(ctx context.Context, logger *slog.Logger, serverConf config.Server, s
logger.Info("starting ",
slog.String("listen", server.Addr),
slog.Duration("startup", time.Since(start)))
slog.Duration("startup", time.Since(start)),
slog.String("mode", gin.Mode()),
)
go StartHttp(server, logger)