Skip to content

Commit 239cc05

Browse files
committed
moving to slog
1 parent 0f7dcee commit 239cc05

13 files changed

+176
-165
lines changed

benchmark_test.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@ import (
1616
"bufio"
1717
"context"
1818
"fmt"
19+
"log/slog"
1920
"os"
2021
"path/filepath"
2122
"strings"
2223
"testing"
2324

24-
"github.com/sirupsen/logrus"
25-
2625
"github.com/firecracker-microvm/firecracker-go-sdk/client/models"
2726
)
2827

@@ -69,9 +68,7 @@ func createMachine(ctx context.Context, name string, forwardSignals []os.Signal)
6968
WithBin(getFirecrackerBinaryPath()).
7069
Build(ctx)
7170

72-
log := logrus.New()
73-
log.SetLevel(logrus.FatalLevel)
74-
machine, err := NewMachine(ctx, config, WithProcessRunner(cmd), WithLogger(logrus.NewEntry(log)))
71+
machine, err := NewMachine(ctx, config, WithProcessRunner(cmd), WithLogger(slog.New(slog.NewTextHandler(os.Stdout, nil))))
7572
if err != nil {
7673
return nil, cleanup, err
7774
}

client_transports.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,19 @@ package firecracker
1515

1616
import (
1717
"context"
18-
"github.com/go-openapi/runtime"
18+
"log/slog"
1919
"net"
2020
"net/http"
2121

22+
"github.com/go-openapi/runtime"
23+
2224
httptransport "github.com/go-openapi/runtime/client"
23-
"github.com/sirupsen/logrus"
2425

2526
"github.com/firecracker-microvm/firecracker-go-sdk/client"
2627
)
2728

2829
// NewUnixSocketTransport creates a new clientTransport configured at the specified Unix socketPath.
29-
func NewUnixSocketTransport(socketPath string, logger *logrus.Entry, debug bool) runtime.ClientTransport {
30+
func NewUnixSocketTransport(socketPath string, logger *slog.Logger, debug bool) runtime.ClientTransport {
3031
socketTransport := &http.Transport{
3132
DialContext: func(ctx context.Context, network, path string) (net.Conn, error) {
3233
addr, err := net.ResolveUnixAddr("unix", socketPath)
@@ -46,7 +47,8 @@ func NewUnixSocketTransport(socketPath string, logger *logrus.Entry, debug bool)
4647
}
4748

4849
if logger != nil {
49-
transport.SetLogger(logger)
50+
// TODO: fix this
51+
// transport.SetLogger(logger)
5052
}
5153

5254
return transport

example_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,10 @@ package firecracker_test
1515
import (
1616
"context"
1717
"fmt"
18+
"log/slog"
1819
"os"
1920
"time"
2021

21-
log "github.com/sirupsen/logrus"
22-
2322
"github.com/firecracker-microvm/firecracker-go-sdk"
2423
models "github.com/firecracker-microvm/firecracker-go-sdk/client/models"
2524
)
@@ -279,8 +278,7 @@ func ExampleJailerConfig_enablingJailer() {
279278
f.Close()
280279
}
281280

282-
logger := log.New()
283-
m, err := firecracker.NewMachine(vmmCtx, fcCfg, firecracker.WithLogger(log.NewEntry(logger)))
281+
m, err := firecracker.NewMachine(vmmCtx, fcCfg, firecracker.WithLogger(slog.New(slog.NewTextHandler(os.Stdout, nil))))
284282
if err != nil {
285283
panic(err)
286284
}

fctesting/utils.go

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ package fctesting
1515

1616
import (
1717
"fmt"
18+
"io"
19+
"log/slog"
1820
"os"
1921
"os/user"
2022
"testing"
2123

2224
"golang.org/x/sys/unix"
23-
24-
log "github.com/sirupsen/logrus"
2525
)
2626

2727
const rootDisableEnvName = "DISABLE_ROOT_TESTS"
@@ -68,23 +68,24 @@ func RequiresRoot(t testing.TB) {
6868
}
6969
}
7070

71-
func newLogger(t testing.TB) *log.Logger {
72-
str := os.Getenv(logLevelEnvName)
73-
l := log.New()
74-
if str == "" {
75-
return l
76-
}
77-
78-
logLevel, err := log.ParseLevel(str)
79-
if err != nil {
80-
t.Fatalf("Failed to parse %q as Log Level: %v", str, err)
81-
}
82-
83-
l.SetLevel(logLevel)
84-
return l
85-
}
71+
// func newLogger(t testing.TB) *log.Logger {
72+
// str := os.Getenv(logLevelEnvName)
73+
// l := log.New()
74+
// if str == "" {
75+
// return l
76+
// }
77+
//
78+
// logLevel, err := log.ParseLevel(str)
79+
// if err != nil {
80+
// t.Fatalf("Failed to parse %q as Log Level: %v", str, err)
81+
// }
82+
//
83+
// l.SetLevel(logLevel)
84+
// return l
85+
// }
8686

8787
// NewLogEntry creates log.Entry. The level is specified by "FC_TEST_LOG_LEVEL" environment variable
88-
func NewLogEntry(t testing.TB) *log.Entry {
89-
return log.NewEntry(newLogger(t))
88+
func NewLogEntry(t testing.TB, level slog.Level, w io.Writer) *slog.Logger {
89+
return slog.New(slog.NewTextHandler(w, &slog.HandlerOptions{Level: level}))
90+
//return log.NewEntry(newLogger(t))
9091
}

fctesting/utils_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
package fctesting
1414

1515
import (
16+
"log/slog"
1617
"os"
1718
"testing"
1819
)
@@ -25,6 +26,6 @@ func TestLoggingPanic(t *testing.T) {
2526
}()
2627

2728
os.Setenv("FC_TEST_LOG_LEVEL", "debug")
28-
l := NewLogEntry(t)
29+
l := NewLogEntry(t, slog.LevelDebug, os.Stdout)
2930
l.Debug("TestLoggingPanic")
3031
}

firecracker.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,11 @@ package firecracker
1515

1616
import (
1717
"context"
18+
"log/slog"
1819
"time"
1920

2021
"github.com/go-openapi/strfmt"
2122

22-
"github.com/sirupsen/logrus"
23-
2423
"github.com/firecracker-microvm/firecracker-go-sdk/client"
2524
models "github.com/firecracker-microvm/firecracker-go-sdk/client/models"
2625
ops "github.com/firecracker-microvm/firecracker-go-sdk/client/operations"
@@ -34,7 +33,7 @@ const (
3433
)
3534

3635
// newFirecrackerClient creates a FirecrackerClient
37-
func newFirecrackerClient(socketPath string, logger *logrus.Entry, debug bool) *client.Firecracker {
36+
func newFirecrackerClient(socketPath string, logger *slog.Logger, debug bool) *client.Firecracker {
3837
httpClient := client.NewHTTPClient(strfmt.NewFormats())
3938

4039
transport := NewUnixSocketTransport(socketPath, logger, debug)
@@ -62,7 +61,7 @@ type Client struct {
6261
}
6362

6463
// NewClient creates a Client
65-
func NewClient(socketPath string, logger *logrus.Entry, debug bool, opts ...ClientOpt) *Client {
64+
func NewClient(socketPath string, logger *slog.Logger, debug bool, opts ...ClientOpt) *Client {
6665
httpClient := newFirecrackerClient(socketPath, logger, debug)
6766
c := &Client{client: httpClient}
6867
c.firecrackerRequestTimeout = envValueOrDefaultInt(firecrackerRequestTimeoutEnv, defaultFirecrackerRequestTimeout)

firecracker_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ package firecracker
1414

1515
import (
1616
"context"
17+
"log/slog"
18+
"os"
1719
"path/filepath"
1820
"testing"
1921
"time"
@@ -54,7 +56,7 @@ func TestClient(t *testing.T) {
5456
PathOnHost: String(filepath.Join(testDataPath, "drive-2.img")),
5557
}
5658

57-
client := NewClient(socketpath, fctesting.NewLogEntry(t), true)
59+
client := NewClient(socketpath, fctesting.NewLogEntry(t, slog.LevelDebug, os.Stdout), true)
5860
deadlineCtx, deadlineCancel := context.WithTimeout(ctx, 250*time.Millisecond)
5961
defer deadlineCancel()
6062
if err := waitForAliveVMM(deadlineCtx, client); err != nil {
@@ -90,7 +92,7 @@ func TestGetFirecrackerVersion(t *testing.T) {
9092
}
9193
}()
9294

93-
client := NewClient(socketpath, fctesting.NewLogEntry(t), true)
95+
client := NewClient(socketpath, fctesting.NewLogEntry(t, slog.LevelDebug, os.Stdout), true)
9496
deadlineCtx, deadlineCancel := context.WithTimeout(ctx, 250*time.Millisecond)
9597
defer deadlineCancel()
9698
if err := waitForAliveVMM(deadlineCtx, client); err != nil {

handlers.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ package firecracker
1616
import (
1717
"context"
1818
"fmt"
19+
"log/slog"
1920
"os"
2021
)
2122

@@ -135,7 +136,7 @@ var StartVMMHandler = Handler{
135136

136137
func createFifoOrFile(ctx context.Context, m *Machine, fifo, path string) error {
137138
if len(fifo) > 0 {
138-
if err := createFifo(fifo); err != nil {
139+
if err := createFifo(fifo, m.logger); err != nil {
139140
return err
140141
}
141142

@@ -171,7 +172,7 @@ var CreateLogFilesHandler = Handler{
171172

172173
if m.Cfg.FifoLogWriter != nil {
173174
if err := m.captureFifoToFile(ctx, m.logger, m.Cfg.LogFifo, m.Cfg.FifoLogWriter); err != nil {
174-
m.logger.Warnf("captureFifoToFile() returned %s. Continuing anyway.", err)
175+
m.logger.Warn("captureFifoToFile() errored. Continuing anyway.", slog.Any("err", err))
175176
}
176177
}
177178

@@ -192,7 +193,7 @@ var BootstrapLoggingHandler = Handler{
192193
if err := m.setupMetrics(ctx); err != nil {
193194
return err
194195
}
195-
m.logger.Debugf("setup logging: success")
196+
m.logger.Debug("setup logging: success")
196197
return nil
197198
},
198199
}
@@ -466,9 +467,9 @@ func (l HandlerList) Clear() HandlerList {
466467
// any of the handlers, then the list will halt execution and return the error.
467468
func (l HandlerList) Run(ctx context.Context, m *Machine) error {
468469
for _, handler := range l.list {
469-
m.logger.Debugf("Running handler %s", handler.Name)
470+
m.logger.Debug("Running handler", slog.String("handler_name", handler.Name))
470471
if err := handler.Fn(ctx, m); err != nil {
471-
m.logger.Warnf("Failed handler %q: %v", handler.Name, err)
472+
m.logger.Warn("Failed handler", slog.String("handler_name", handler.Name), slog.Any("err", err))
472473
return err
473474
}
474475
}

handlers_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ package firecracker
1515
import (
1616
"context"
1717
"fmt"
18+
"log/slog"
1819
"net"
1920
"os"
2021
"path/filepath"
@@ -186,7 +187,7 @@ func TestHandlerListRun(t *testing.T) {
186187

187188
ctx := context.Background()
188189
m := &Machine{
189-
logger: fctesting.NewLogEntry(t),
190+
logger: fctesting.NewLogEntry(t, slog.LevelDebug, os.Stdout),
190191
}
191192
if err := h.Run(ctx, m); err != bazErr {
192193
t.Errorf("expected an error, but received %v", err)
@@ -679,8 +680,8 @@ func TestHandlers(t *testing.T) {
679680
// resetting called for the next test
680681
called = ""
681682

682-
client := NewClient(socketpath, fctesting.NewLogEntry(t), true, WithOpsClient(&c.Client))
683-
m, err := NewMachine(ctx, c.Config, WithClient(client), WithLogger(fctesting.NewLogEntry(t)))
683+
client := NewClient(socketpath, fctesting.NewLogEntry(t, slog.LevelDebug, os.Stdout), true, WithOpsClient(&c.Client))
684+
m, err := NewMachine(ctx, c.Config, WithClient(client), WithLogger(fctesting.NewLogEntry(t, slog.LevelDebug, os.Stdout)))
684685
if err != nil {
685686
t.Fatalf("failed to create machine: %v", err)
686687
}

0 commit comments

Comments
 (0)