Skip to content

Commit 5d50e7e

Browse files
committed
migrate gokit/logex to log/slog
1 parent 7ee005d commit 5d50e7e

24 files changed

Lines changed: 180 additions & 151 deletions

File tree

cmd/edgerouter/discovery.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/function61/edgerouter/pkg/erconfig"
1414
"github.com/function61/edgerouter/pkg/erdiscovery"
1515
"github.com/function61/edgerouter/pkg/erdiscovery/defaultdiscovery"
16+
"github.com/function61/edgerouter/pkg/todoupgradegokit/slogshim"
1617
"github.com/function61/gokit/jsonfile"
1718
"github.com/function61/gokit/osutil"
1819
"github.com/scylladb/termtables"
@@ -195,5 +196,5 @@ func discoveryEntry() *cobra.Command {
195196
}
196197

197198
func newDefaultDiscoveryWithoutLogger() (erdiscovery.ReaderWriter, error) {
198-
return defaultdiscovery.New(nil)
199+
return defaultdiscovery.New(slogshim.NewWithOutput(io.Discard))
199200
}

cmd/edgerouter/main.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@
22
package main
33

44
import (
5+
"log/slog"
56
"os"
67

78
"github.com/function61/edgerouter/pkg/erbackend/turbochargerbackend/turbochargererdeploy"
89
"github.com/function61/edgerouter/pkg/erlambdacli"
910
"github.com/function61/edgerouter/pkg/ers3cli"
1011
"github.com/function61/edgerouter/pkg/erserver"
12+
"github.com/function61/edgerouter/pkg/todoupgradegokit/slogshim"
1113
"github.com/function61/edgerouter/pkg/turbocharger/turbochargerdeploy"
1214
"github.com/function61/eventhorizon/pkg/ehcli"
1315
"github.com/function61/gokit/dynversion"
14-
"github.com/function61/gokit/logex"
1516
"github.com/function61/gokit/osutil"
1617
"github.com/spf13/cobra"
1718
)
@@ -42,12 +43,12 @@ func serveEntry() *cobra.Command {
4243
Short: "Runs the HTTP server",
4344
Args: cobra.NoArgs,
4445
Run: func(cmd *cobra.Command, args []string) {
45-
rootLogger := logex.StandardLogger()
46+
logger := slogshim.New()
4647

4748
osutil.ExitIfError(erserver.Serve(
48-
osutil.CancelOnInterruptOrTerminate(rootLogger),
49+
osutil.CancelOnInterruptOrTerminate(slogshim.ToStd(logger, slog.LevelInfo)),
4950
erserver.DefaultConfigDir,
50-
rootLogger))
51+
logger))
5152
},
5253
}
5354
}

pkg/erbackend/lambdabackend/lambdabackend.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"encoding/json"
99
"fmt"
1010
"io"
11-
"log"
11+
"log/slog"
1212
"net"
1313
"net/http"
1414
"net/url"
@@ -28,7 +28,7 @@ type lambdaBackend struct {
2828
isPayloadV2 bool // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
2929
}
3030

31-
func New(ctx context.Context, opts erconfig.BackendOptsAwsLambda, logger *log.Logger) (http.Handler, error) {
31+
func New(ctx context.Context, opts erconfig.BackendOptsAwsLambda, logger *slog.Logger) (http.Handler, error) {
3232
awsConfig, err := config.LoadDefaultConfig(ctx, config.WithRegion(opts.RegionID))
3333
if err != nil {
3434
return nil, err

pkg/erbackend/reverseproxybackend/reverseproxy.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"crypto/tls"
88
"errors"
99
"fmt"
10-
"log"
10+
"log/slog"
1111
"math/rand"
1212
"net/http"
1313
"net/http/httputil"
@@ -30,7 +30,7 @@ import (
3030
// 3) press F5 from browser. this'll inject 304 Not Modified into cache (browser expects 304 but CACHE NOT)
3131
// 4) now use cURL to request the same resource (= without caching), and you'll get 304 🤦
3232

33-
func New(ctx context.Context, appID string, opts erconfig.BackendOptsReverseProxy, logger *log.Logger) (http.Handler, error) {
33+
func New(ctx context.Context, appID string, opts erconfig.BackendOptsReverseProxy, logger *slog.Logger) (http.Handler, error) {
3434
handler, err := NewWithModifyResponse(appID, opts, nil)
3535
if err != nil {
3636
return nil, err

pkg/erbackend/turbochargerbackend/backend.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,34 @@ package turbochargerbackend
44

55
import (
66
"context"
7-
"log"
7+
"log/slog"
88
"net/http"
99
"strings"
1010

1111
"github.com/function61/edgerouter/pkg/turbocharger"
12-
"github.com/function61/gokit/logex"
1312
)
1413

1514
// doesn't do much more than binds a static manifest ID to the backend. in case the manifest changes
1615
// (a different version of a website gets deployed), that's an Edgerouter-level concern and it will make a new backend instance.
17-
func New(ctx context.Context, manifestID turbocharger.ObjectID, logger *log.Logger) (http.Handler, error) {
18-
manifestHandler, err := turbocharger.GetManifestHandlerSingleton(ctx)
16+
func New(ctx context.Context, manifestID turbocharger.ObjectID, logger *slog.Logger) (http.Handler, error) {
17+
manifestHandler, err := turbocharger.GetManifestHandlerSingleton(ctx, logger)
1918
if err != nil {
2019
return nil, err
2120
}
2221

23-
logl := logex.Levels(logger)
22+
backendLogger := logger.With("subsystem", "turbocharger-backend")
2423

2524
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
2625
if strings.HasSuffix(r.URL.Path, "/") { // "/foo/" => "/foo/index.html"
2726
r.URL.Path += "index.html"
2827
}
2928

3029
if err := manifestHandler.ServeHTTPFromManifest(manifestID, w, r); err != nil {
31-
logl.Error.Println(err.Error())
30+
backendLogger.Error("serve from manifest",
31+
"error", err,
32+
"manifest_id", manifestID.String(),
33+
"path", r.URL.Path,
34+
)
3235
}
3336
}), nil
3437
}

pkg/erbackend/turbochargerbackend/turbochargererdeploy/cli.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ package turbochargererdeploy
44
import (
55
"context"
66
"fmt"
7+
"log/slog"
78

89
"github.com/function61/edgerouter/pkg/erconfig"
910
"github.com/function61/edgerouter/pkg/erdiscovery/defaultdiscovery"
11+
"github.com/function61/edgerouter/pkg/todoupgradegokit/slogshim"
1012
"github.com/function61/edgerouter/pkg/turbocharger"
11-
"github.com/function61/gokit/logex"
1213
"github.com/function61/gokit/osutil"
1314
"github.com/spf13/cobra"
1415
)
@@ -19,29 +20,27 @@ func CLIEntrypoint() *cobra.Command {
1920
Short: "Deploys a static website from Turbocharger",
2021
Args: cobra.ExactArgs(2),
2122
Run: func(cmd *cobra.Command, args []string) {
23+
logger := slogshim.New()
2224
osutil.ExitIfError(func() error {
2325
manifestID, err := turbocharger.ObjectIDFromString(args[1])
2426
if err != nil {
2527
return err
2628
}
2729

2830
return deploy(
29-
osutil.CancelOnInterruptOrTerminate(logex.StandardLogger()),
31+
osutil.CancelOnInterruptOrTerminate(slogshim.ToStd(logger, slog.LevelInfo)),
3032
args[0],
31-
*manifestID)
33+
*manifestID,
34+
logger)
3235
}())
3336
},
3437
}
3538
}
3639

3740
// atomically deploys a new version of a site by changing site's Turbocharger Manifest ID
3841
// (which is essentially a pointer to an immutable file list) in the app configuration.
39-
func deploy(
40-
ctx context.Context,
41-
applicationID string,
42-
manifestID turbocharger.ObjectID,
43-
) error {
44-
discoverySvc, err := defaultdiscovery.New(nil)
42+
func deploy(ctx context.Context, applicationID string, manifestID turbocharger.ObjectID, logger *slog.Logger) error {
43+
discoverySvc, err := defaultdiscovery.New(logger)
4544
if err != nil {
4645
return err
4746
}

pkg/erdiscovery/defaultdiscovery/default.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,19 @@
33
package defaultdiscovery
44

55
import (
6-
"log"
6+
"log/slog"
77

88
"github.com/function61/edgerouter/pkg/erdiscovery"
99
"github.com/function61/edgerouter/pkg/erdiscovery/ehdiscovery"
1010
"github.com/function61/eventhorizon/pkg/ehreader"
11-
"github.com/function61/gokit/logex"
1211
)
1312

1413
// currently uses ehdiscovery as default
15-
func New(logger *log.Logger) (erdiscovery.ReaderWriter, error) {
14+
func New(logger *slog.Logger) (erdiscovery.ReaderWriter, error) {
1615
tenantCtx, err := ehreader.TenantCtxFrom(ehreader.ConfigFromEnv)
1716
if err != nil {
1817
return nil, err
1918
}
2019

21-
return ehdiscovery.New(*tenantCtx, logex.Prefix("ehdiscovery", logger))
20+
return ehdiscovery.New(*tenantCtx, logger)
2221
}

pkg/erdiscovery/dockerdiscovery/docker.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ package dockerdiscovery
44
import (
55
"context"
66
"fmt"
7-
"log"
87
"log/slog"
98
"net"
109
"net/http"
@@ -35,7 +34,7 @@ func HasConfigInEnv() bool {
3534
return os.Getenv("DOCKER_URL") != ""
3635
}
3736

38-
func New() (erdiscovery.Reader, error) {
37+
func New(logger *slog.Logger) (erdiscovery.Reader, error) {
3938
dockerURL, err := envvar.Required("DOCKER_URL")
4039
if err != nil {
4140
return nil, err
@@ -67,13 +66,15 @@ func New() (erdiscovery.Reader, error) {
6766
dockerNetworkName: dockerNetworkName,
6867
dockerURL: dockerURL,
6968
dockerClient: dockerClient,
69+
logger: logger,
7070
}, nil
7171
}
7272

7373
type dockerDiscovery struct {
7474
dockerNetworkName string
7575
dockerURL string
7676
dockerClient *http.Client
77+
logger *slog.Logger
7778
}
7879

7980
func (s *dockerDiscovery) ReadApplications(ctx context.Context) ([]erconfig.Application, error) {
@@ -82,7 +83,7 @@ func (s *dockerDiscovery) ReadApplications(ctx context.Context) ([]erconfig.Appl
8283
return nil, err
8384
}
8485

85-
bareContainers, err := discoverDockerContainers(ctx, s.dockerURL, s.dockerNetworkName, s.dockerClient, swarmServices)
86+
bareContainers, err := discoverDockerContainers(ctx, s.dockerURL, s.dockerNetworkName, s.dockerClient, swarmServices, s.logger)
8687
if err != nil {
8788
return nil, err
8889
}
@@ -96,7 +97,9 @@ func (s *dockerDiscovery) ReadApplications(ctx context.Context) ([]erconfig.Appl
9697
for _, service := range swarmServicesAndBareContainers {
9798
app, err := traefikAnnotationsToApp(service)
9899
if err != nil {
99-
log.Println(fmt.Errorf("%s: traefikAnnotationsToApp: %w", service.Name, err).Error())
100+
s.logger.Error("traefikAnnotationsToApp",
101+
"service", service.Name,
102+
"error", err)
100103
continue
101104
}
102105
if app == nil { // non-error skip
@@ -209,6 +212,7 @@ func discoverDockerContainers(
209212
dockerNetworkName string,
210213
dockerClient *http.Client,
211214
alreadyDiscoveredFromSwarm []Service,
215+
logger *slog.Logger,
212216
) ([]Service, error) {
213217
services := []Service{}
214218

@@ -276,7 +280,7 @@ func discoverDockerContainers(
276280
if settings, found := container.NetworkSettings.Networks["host"]; !ipFound() && found {
277281
// when host network, settings doesn't specify IP address
278282
if settings.IPAddress != "" {
279-
slog.Warn("IPAddress not expected for host", "container", container.Id)
283+
logger.Warn("IPAddress not expected for host", "container", container.Id)
280284
continue
281285
}
282286
ipAddress = "127.0.0.1"

pkg/erdiscovery/ehdiscovery/ehdiscovery.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package ehdiscovery
33

44
import (
55
"context"
6-
"log"
6+
"log/slog"
77
"os"
88
"sort"
99
"sync"
@@ -12,10 +12,10 @@ import (
1212
"github.com/function61/edgerouter/pkg/erconfig"
1313
"github.com/function61/edgerouter/pkg/erdiscovery"
1414
"github.com/function61/edgerouter/pkg/erdomain"
15+
"github.com/function61/edgerouter/pkg/todoupgradegokit/slogshim"
1516
"github.com/function61/eventhorizon/pkg/ehclient"
1617
"github.com/function61/eventhorizon/pkg/ehevent"
1718
"github.com/function61/eventhorizon/pkg/ehreader"
18-
"github.com/function61/gokit/logex"
1919
)
2020

2121
const (
@@ -30,20 +30,20 @@ type ehDiscovery struct {
3030
tenantCtx ehreader.TenantCtx
3131
reader *ehreader.Reader
3232
cursor ehclient.Cursor
33-
logl *logex.Leveled
33+
logger *slog.Logger
3434
apps map[string]erconfig.Application
3535
appsMu sync.Mutex
3636
}
3737

38-
func New(tenantCtx ehreader.TenantCtx, logger *log.Logger) (erdiscovery.ReaderWriter, error) {
38+
func New(tenantCtx ehreader.TenantCtx, logger *slog.Logger) (erdiscovery.ReaderWriter, error) {
3939
d := &ehDiscovery{
4040
tenantCtx: tenantCtx,
4141
cursor: ehclient.Beginning(tenantCtx.Stream(stream)),
42-
logl: logex.Levels(logger),
42+
logger: logger.With("subsystem", "ehdiscovery"),
4343
apps: map[string]erconfig.Application{},
4444
}
4545

46-
d.reader = ehreader.New(d, tenantCtx.Client, logger)
46+
d.reader = ehreader.New(d, tenantCtx.Client, slogshim.ToStd(logger.With("subsystem", "ehdiscovery/ehreader"), slog.LevelInfo))
4747

4848
return d, nil
4949
}
@@ -105,7 +105,7 @@ func (d *ehDiscovery) ProcessEvents(ctx context.Context, handle ehreader.EventPr
105105
}
106106

107107
func (d *ehDiscovery) processEvent(ev ehevent.Event) error {
108-
d.logl.Info.Println(ev.MetaType())
108+
d.logger.Info(ev.MetaType())
109109

110110
switch e := ev.(type) {
111111
case *erdomain.AppUpdated:

pkg/erdiscovery/ehdiscovery/ehdiscovery_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ package ehdiscovery
22

33
import (
44
"context"
5+
"io"
56
"testing"
67
"time"
78

89
"github.com/function61/edgerouter/pkg/erconfig"
910
"github.com/function61/edgerouter/pkg/erdomain"
11+
"github.com/function61/edgerouter/pkg/todoupgradegokit/slogshim"
1012
"github.com/function61/eventhorizon/pkg/ehevent"
1113
"github.com/function61/eventhorizon/pkg/ehreader"
1214
"github.com/function61/eventhorizon/pkg/ehreader/ehreadertest"
@@ -23,7 +25,7 @@ func TestDiscovery(t *testing.T) {
2325

2426
tenantCtx := ehreader.NewTenantCtx(ehreader.TenantId("42"), eventLog)
2527

26-
discovery, err := New(*tenantCtx, nil)
28+
discovery, err := New(*tenantCtx, slogshim.NewWithOutput(io.Discard))
2729
assert.Ok(t, err)
2830

2931
apps, err := discovery.ReadApplications(ctx)

0 commit comments

Comments
 (0)