From f62e6f69bb11706ea12dba9da8a944811121868d Mon Sep 17 00:00:00 2001 From: shvc <12904584+shvc@users.noreply.github.com> Date: Fri, 8 Dec 2023 12:25:06 +0000 Subject: [PATCH] feat: use slog --- README.md | 10 -- file.go | 13 +- go.mod | 1 - go.sum | 3 - main.go | 310 ++++++++++++------------------------ mystor.go | 60 ------- s3.go | 12 +- screenshot/macos-login.png | Bin 27639 -> 0 bytes screenshot/ubuntu-login.png | Bin 29329 -> 0 bytes screenshot/win-file.png | Bin 22939 -> 0 bytes screenshot/win-login.png | Bin 27499 -> 0 bytes sftp.go | 10 +- 12 files changed, 115 insertions(+), 304 deletions(-) delete mode 100644 mystor.go delete mode 100644 screenshot/macos-login.png delete mode 100644 screenshot/ubuntu-login.png delete mode 100644 screenshot/win-file.png delete mode 100644 screenshot/win-login.png diff --git a/README.md b/README.md index 1a02bdd..c149e8a 100644 --- a/README.md +++ b/README.md @@ -28,13 +28,3 @@ FYNE_FONT=C:\Windows\Fonts\Microsoft YaHei Mono.ttf ``` FYNE_FONT='/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc' ``` - -## ScreenShot -- Windows login -![Win-login](screenshot/win-login.png) -- Windows File Browser -![Win-file](screenshot/win-file.png) -- MacOS login -![MacOS-login](screenshot/macos-login.png) -- Ubuntu login -![Ubuntu-login](screenshot/ubuntu-login.png) diff --git a/file.go b/file.go index 61b7f34..de363cd 100644 --- a/file.go +++ b/file.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "log/slog" "path" "strings" "time" @@ -11,7 +12,6 @@ import ( "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/widget" - log "github.com/sirupsen/logrus" ) const ( @@ -150,12 +150,11 @@ func (fl *FileList) SelectFile(id int) (v File) { return } v = fl.data[id] - - log.WithFields(log.Fields{ - "id": id, - "name": v.Name, - "parent": fl.parent, - }).Debug("select file") + slog.Debug("select file", + slog.Int("id", id), + slog.String("name", v.Name), + slog.String("parent", fl.parent), + ) return } diff --git a/go.mod b/go.mod index d137121..98df4cb 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,6 @@ require ( github.com/aws/aws-sdk-go-v2 v1.23.5 github.com/aws/aws-sdk-go-v2/service/s3 v1.47.3 github.com/pkg/sftp v1.13.6 - github.com/sirupsen/logrus v1.9.3 golang.org/x/crypto v0.16.0 ) diff --git a/go.sum b/go.sum index 2ab9040..9d1548a 100644 --- a/go.sum +++ b/go.sum @@ -280,8 +280,6 @@ github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636/go.mod h1:TDJrrUr11Vxr github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= -github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= @@ -499,7 +497,6 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/main.go b/main.go index 9ac7fb7..6dbe7fd 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "errors" "flag" "io" + "log/slog" "net/url" "os" "path" @@ -21,7 +22,6 @@ import ( "fyne.io/fyne/v2/dialog" "fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/widget" - log "github.com/sirupsen/logrus" ) const ( @@ -120,11 +120,11 @@ func (sc *Fone) makeHeader() error { prefix := sc.pathLabel.Text data, nextMarker, err := sc.client.List(sc.refreshCtx, prefix, "") if err != nil { - log.WithFields(log.Fields{ - "marker": "", - "prefix": prefix, - "error": err.Error(), - }).Warn("refresh failed") + slog.Warn("refresh failed", + slog.String("marker", ""), + slog.String("prefix", prefix), + slog.String("error", err.Error()), + ) sc.unlockRefresh() showLableMsg(sc.infoLabel, err.Error()) return @@ -140,15 +140,15 @@ func (sc *Fone) makeHeader() error { bucketItem := fyne.NewMenuItem("Bucket", nil) bucketItem.ChildMenu = fyne.NewMenu("", fyne.NewMenuItem("Policy", func() { - log.Info("Bucket Policy") + slog.Info("Bucket Policy") }), fyne.NewMenuItem("Versioning", func() { - log.Info("Bucket Versioning") + slog.Info("Bucket Versioning") }), ) link, err := url.Parse(shvcFone) if err != nil { - log.Warn("Could not parse URL", err) + slog.Warn("Could not parse URL", err) } menuLabel := buttonMenu(theme.MenuIcon(), fyne.NewMenu("", bucketItem, @@ -162,9 +162,9 @@ func (sc *Fone) makeHeader() error { sc.w.Resize(fyne.NewSize(600, 300)) sc.selectFile.Name = "" sc.selectItemID = -1 - log.WithFields(log.Fields{ - "pwd": "sc.bucketEntry.Text", - }).Info("exit session") + slog.Info("exit session", + slog.String("pwd", sc.pathLabel.Text), + ) } }, sc.w).Show() }), @@ -204,11 +204,11 @@ func (sc *Fone) makeHeader() error { } data, nextMarker, err := sc.client.List(sc.refreshCtx, prefix, "") if err != nil { - log.WithFields(log.Fields{ - "marker": "", - "prefix": prefix, - "error": err.Error(), - }).Warn("refresh failed") + slog.Warn("refresh failed", + slog.String("marker", ""), + slog.String("prefix", prefix), + slog.String("error", err.Error()), + ) sc.unlockRefresh() showLableMsg(sc.infoLabel, err.Error()) return @@ -258,14 +258,14 @@ func (sc *Fone) makeFooter() error { } d := dialog.NewFileSave(func(uc fyne.URIWriteCloser, e error) { if e != nil { - log.WithFields(log.Fields{ - "error": e.Error(), - }).Warn("download select file failed") + slog.Warn("download select file failed", + slog.String("error", e.Error()), + ) btnDownload.SetIcon(theme.DownloadIcon()) return } if uc == nil { - log.Warn("download select file nil") + slog.Warn("download select file nil") btnDownload.SetIcon(theme.DownloadIcon()) return } @@ -281,18 +281,18 @@ func (sc *Fone) makeFooter() error { err := sc.client.Download(downloadCtx, uc, key) if err != nil { - log.WithFields(log.Fields{ - "key": key, - "error": err.Error(), - }).Warn("download failed") + slog.Warn("download failed", + slog.String("key", key), + slog.String("error", err.Error()), + ) showLableMsg(sc.infoLabel, err.Error()) return } - log.WithFields(log.Fields{ - "key": key, - "file": uc.URI().String(), - }).Info("download success") + slog.Info("download success", + slog.String("key", key), + slog.String("file", uc.URI().String()), + ) }() }, sc.w) d.SetFileName(path.Base(sc.selectFile.Name)) @@ -316,9 +316,9 @@ func (sc *Fone) makeFooter() error { } d := dialog.NewFileOpen(func(uc fyne.URIReadCloser, e error) { if e != nil { - log.WithFields(log.Fields{ - "error": e.Error(), - }).Warn("upload select file failed") + slog.Warn("upload select file failed", + slog.String("error", e.Error()), + ) dialog.NewError(e, sc.w).Show() btnUpload.SetIcon(theme.UploadIcon()) return @@ -350,19 +350,19 @@ func (sc *Fone) makeFooter() error { } err := sc.client.Upload(uploadCtx, rs, key, uc.URI().MimeType()) if err != nil { - log.WithFields(log.Fields{ - "key": key, - "file": fullName, - "error": err.Error(), - }).Warn("upload failed") + slog.Warn("upload failed", + slog.String("key", key), + slog.String("file", fullName), + slog.String("error", err.Error()), + ) dialog.NewError(err, sc.w).Show() return } - log.WithFields(log.Fields{ - "key": key, - "file": fullName, - }).Info("upload success") + slog.Warn("upload success", + slog.String("key", key), + slog.String("file", fullName), + ) sc.body.Add(File{ Name: filename, @@ -384,16 +384,16 @@ func (sc *Fone) makeFooter() error { key := path.Join(sc.pathLabel.Text, sc.selectFile.Name) e := sc.client.Delete(context.TODO(), key) if e != nil { - log.WithFields(log.Fields{ - "key": key, - "error": e.Error(), - }).Warn("delete failed") + slog.Warn("delete failed", + slog.String("key", key), + slog.String("error", e.Error()), + ) return } sc.body.Delete(sc.selectItemID) - log.WithFields(log.Fields{ - "key": key, - }).Info("delete success") + slog.Info("delete success", + slog.String("key", key), + ) }) btnDelete.Importance = widget.LowImportance @@ -420,21 +420,21 @@ func (sc *Fone) makeFooter() error { // Must lockRefresh func (sc *Fone) appendBody(ctx context.Context, prefix, marker string) { - log.WithFields(log.Fields{ - "prefix": prefix, - "marker": marker, - }).Debug("more list") + slog.Debug("more list", + slog.String("prefix", prefix), + slog.String("marker", marker), + ) go func() { defer sc.unlockRefresh() data := []File{} for marker != "" { d, m, err := sc.client.List(ctx, prefix, marker) if err != nil { - log.WithFields(log.Fields{ - "prefix": prefix, - "marker": marker, - "err": err.Error(), - }).Error("more list failed") + slog.Error("more list failed", + slog.String("prefix", prefix), + slog.String("marker", marker), + slog.String("error", err.Error()), + ) break } marker = m @@ -508,12 +508,12 @@ func (sc *Fone) createS3LoginForm() *widget.Form { sc.lockRefresh() data, nextMarker, err := sc.client.List(context.Background(), "", "") if err != nil { - log.WithFields(log.Fields{ - "endpoint": endpoint.Text, - "bucket": bucketEntry.Text, - "user": user.Text, - "error": err.Error(), - }).Warn("list file failed") + slog.Warn("list file failed", + slog.String("endpoint", endpoint.Text), + slog.String("bucket", bucketEntry.Text), + slog.String("user", user.Text), + slog.String("error", err.Error()), + ) var e error for err != nil { e = err @@ -522,11 +522,11 @@ func (sc *Fone) createS3LoginForm() *widget.Form { dialog.ShowError(e, sc.w) return } - log.WithFields(log.Fields{ - "endpoint": endpoint.Text, - "bucket": bucketEntry.Text, - "user": user.Text, - }).Info("list file success") + slog.Info("list file success", + slog.String("endpoint", endpoint.Text), + slog.String("bucket", bucketEntry.Text), + slog.String("user", user.Text), + ) sc.makeHeader() sc.initBody(data) @@ -542,11 +542,11 @@ func (sc *Fone) createS3LoginForm() *widget.Form { client := NewClient(user.Text, pass.Text, region.Text, endpoint.Text) data, err := client.ListAllMyBuckets(context.Background()) if err != nil { - log.WithFields(log.Fields{ - "endpoint": endpoint.Text, - "user": user.Text, - "error": err.Error(), - }).Warn("list buckets failed") + slog.Warn("list buckets failed", + slog.String("endpoint", endpoint.Text), + slog.String("user", user.Text), + slog.String("error", err.Error()), + ) var e error for err != nil { e = err @@ -555,10 +555,11 @@ func (sc *Fone) createS3LoginForm() *widget.Form { dialog.ShowError(e, sc.w) return } - log.WithFields(log.Fields{ - "endpoint": endpoint.Text, - "user": user.Text, - }).Info("list buckets success") + + slog.Info("list buckets success", + slog.String("endpoint", endpoint.Text), + slog.String("user", user.Text), + ) if len(data) > 0 { bucketEntry.SetOptions(data) bucketEntry.SetText(data[0]) @@ -590,24 +591,24 @@ func (sc *Fone) createSftpLoginForm() *widget.Form { sc.w.SetTitle("sftp") sc.client, pwd, err = NewSftpClient(server.Text, sftpUser.Text, sftpPassword.Text, remoteDir.Text) if err != nil { - log.WithFields(log.Fields{ - "server": server.Text, - "pwd": pwd, - "user": sftpUser.Text, - "error": err.Error(), - }).Warn("init provider failed") + slog.Warn("init provider failed", + slog.String("server", server.Text), + slog.String("pwd", pwd), + slog.String("user", sftpUser.Text), + slog.String("error", err.Error()), + ) return } sc.lockRefresh() data, nextMarker, err := sc.client.List(context.Background(), pwd, "") if err != nil { - log.WithFields(log.Fields{ - "server": server.Text, - "pwd": pwd, - "user": sftpUser.Text, - "error": err.Error(), - }).Warn("list file failed") + slog.Warn("list file failed", + slog.String("server", server.Text), + slog.String("pwd", pwd), + slog.String("user", sftpUser.Text), + slog.String("error", err.Error()), + ) var e error for err != nil { e = err @@ -617,11 +618,11 @@ func (sc *Fone) createSftpLoginForm() *widget.Form { return } - log.WithFields(log.Fields{ - "server": server.Text, - "pwd": pwd, - "user": sftpUser.Text, - }).Info("list file success") + slog.Info("list file success", + slog.String("server", server.Text), + slog.String("pwd", pwd), + slog.String("user", sftpUser.Text), + ) sc.makeHeader() sc.initBody(data) @@ -641,120 +642,6 @@ func (sc *Fone) createSftpLoginForm() *widget.Form { } } -func (sc *Fone) createMyshareLoginForm() *widget.Form { - server := widget.NewEntryWithData(binding.BindPreferenceString("cred.myshare_server", sc.a.Preferences())) - server.SetPlaceHolder("http://192.168.0.8:9090") - server.Validator = validation.NewRegexp(`^(?:https?://)?(?:[^/.\s]+\.)*`, "not a valid server address") - bucketEntry := widget.NewSelectEntry(nil) - bucketEntry.Bind(binding.BindPreferenceString("cred.myshare_bucket", sc.a.Preferences())) - user := widget.NewEntryWithData(binding.BindPreferenceString("cred.myshare_user", sc.a.Preferences())) - pass := widget.NewPasswordEntry() - pass.Bind(binding.BindPreferenceString("cred.myshare_pass", sc.a.Preferences())) - - return &widget.Form{ - Items: []*widget.FormItem{ - widget.NewFormItem("Server", server), - widget.NewFormItem("AccessKey", user), - widget.NewFormItem("SecretKey", pass), - widget.NewFormItem("Bucket", bucketEntry), - }, - SubmitText: "Enter", - OnSubmit: func() { - sc.w.SetTitle("myshare") - if bucketEntry.Text != "" { - var err error - sc.client, _, err = NewMystorClient(server.Text, user.Text, pass.Text, bucketEntry.Text) - if err != nil { - log.WithFields(log.Fields{ - "endpoint": server.Text, - "user": user.Text, - "error": err.Error(), - }).Warn("create client failed") - var e error - for err != nil { - e = err - err = errors.Unwrap(err) - } - dialog.ShowError(e, sc.w) - return - } - sc.lockRefresh() - data, nextMarker, err := sc.client.List(context.Background(), "", "") - if err != nil { - log.WithFields(log.Fields{ - "server": server.Text, - "bucket": bucketEntry.Text, - "user": user.Text, - "error": err.Error(), - }).Warn("list file failed") - var e error - for err != nil { - e = err - err = errors.Unwrap(err) - } - dialog.ShowError(e, sc.w) - return - } - log.WithFields(log.Fields{ - "server": server.Text, - "bucket": bucketEntry.Text, - "user": user.Text, - }).Info("list file success") - - sc.makeHeader() - sc.initBody(data) - sc.makeFooter() - - sc.refreshCtx, sc.refreshCancel = context.WithCancel(context.Background()) - sc.lockRefresh() - sc.appendBody(sc.refreshCtx, "", nextMarker) - - sc.w.SetContent(container.NewBorder(sc.header, sc.footer, nil, nil, sc.body)) - sc.w.Resize(fyne.NewSize(800, 600)) - } else { - client, _, err := NewMystorClient(server.Text, user.Text, pass.Text, bucketEntry.Text) - if err != nil { - log.WithFields(log.Fields{ - "endpoint": server.Text, - "user": user.Text, - "error": err.Error(), - }).Warn("create client failed") - var e error - for err != nil { - e = err - err = errors.Unwrap(err) - } - dialog.ShowError(e, sc.w) - return - } - data, err := client.ListAllMyBuckets(context.Background()) - if err != nil { - log.WithFields(log.Fields{ - "endpoint": server.Text, - "user": user.Text, - "error": err.Error(), - }).Warn("list buckets failed") - var e error - for err != nil { - e = err - err = errors.Unwrap(err) - } - dialog.ShowError(e, sc.w) - return - } - log.WithFields(log.Fields{ - "server": server.Text, - "user": user.Text, - }).Info("list buckets success") - if len(data) > 0 { - bucketEntry.SetOptions(data) - bucketEntry.SetText(data[0]) - } - } - }, - } -} - func main() { var logfile string var debug bool @@ -766,11 +653,11 @@ func main() { if err != nil { panic(err) } - + logOpt := &slog.HandlerOptions{} if debug { - log.SetLevel(log.DebugLevel) + logOpt.Level = slog.LevelDebug } - log.SetOutput(logfd) + slog.SetDefault(slog.New(slog.NewTextHandler(logfd, logOpt))) fe := Fone{ a: app.NewWithID("cc.shvc.fone"), @@ -780,7 +667,6 @@ func main() { fe.appTab = container.NewAppTabs( container.NewTabItemWithIcon("S3", theme.FileIcon(), fe.createS3LoginForm()), container.NewTabItemWithIcon("sftp", theme.FolderIcon(), fe.createSftpLoginForm()), - container.NewTabItemWithIcon("myshare", theme.DocumentIcon(), fe.createMyshareLoginForm()), ) fe.w.SetContent(fe.appTab) diff --git a/mystor.go b/mystor.go deleted file mode 100644 index b92c4c5..0000000 --- a/mystor.go +++ /dev/null @@ -1,60 +0,0 @@ -package main - -import ( - "context" - "errors" - "io" - - log "github.com/sirupsen/logrus" -) - -func NewMystorClient(server, user, pass, dir string) (*MystorClient, string, error) { - return &MystorClient{ - Pwd: dir, - }, dir, nil -} - -type MystorClient struct { - Pwd string -} - -func (c *MystorClient) ListAllMyBuckets(ctx context.Context) (data []string, err error) { - log.WithFields(log.Fields{}).Debug("myshare list buckets") - - err = errors.New("no ready") - return -} - -func (c *MystorClient) List(ctx context.Context, prefix, marker string) (data []File, nextMarker string, err error) { - log.WithFields(log.Fields{ - "marker": marker, - "prefix": prefix, - }).Debug("mystor list") - - err = errors.New("no ready") - return -} - -func (c *MystorClient) Upload(ctx context.Context, rs io.ReadSeeker, key, contentType string) (err error) { - err = errors.New("no ready") - return -} - -func (c *MystorClient) Download(ctx context.Context, w io.Writer, key string) (err error) { - err = errors.New("no ready") - return -} - -func (c *MystorClient) Delete(ctx context.Context, key string) (err error) { - err = errors.New("no ready") - return -} - -func (c *MystorClient) Stat(ctx context.Context, key string) (f File, err error) { - err = errors.New("no ready") - return -} - -func (c *MystorClient) Close(ctx context.Context) error { - return nil -} diff --git a/s3.go b/s3.go index a4f6599..271aa6d 100644 --- a/s3.go +++ b/s3.go @@ -4,6 +4,7 @@ import ( "context" "crypto/tls" "io" + "log/slog" "net" "net/http" "strings" @@ -12,7 +13,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" v4 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" "github.com/aws/aws-sdk-go-v2/service/s3" - log "github.com/sirupsen/logrus" ) const ( @@ -88,7 +88,7 @@ type S3Client struct { } func (c *S3Client) ListAllMyBuckets(ctx context.Context) (data []string, err error) { - log.WithFields(log.Fields{}).Debug("s3 list buckets") + slog.Debug("s3 list buckets") s3out, err := c.ListBuckets(ctx, &s3.ListBucketsInput{}) if err != nil { @@ -104,10 +104,10 @@ func (c *S3Client) ListAllMyBuckets(ctx context.Context) (data []string, err err } func (c *S3Client) List(ctx context.Context, prefix, marker string) (data []File, nextMarker string, err error) { - log.WithFields(log.Fields{ - "marker": marker, - "prefix": prefix, - }).Debug("s3 list") + slog.Debug("s3 list", + slog.String("marker", marker), + slog.String("prefix", prefix), + ) loi := &s3.ListObjectsInput{ Bucket: aws.String(c.Bucket), Delimiter: aws.String(listDelimiter), diff --git a/screenshot/macos-login.png b/screenshot/macos-login.png deleted file mode 100644 index db4c70b80ecee31d455224bad332f20b2a35f0ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27639 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 diff --git a/screenshot/ubuntu-login.png b/screenshot/ubuntu-login.png deleted file mode 100644 index 110358cf50a747c0bae649653e107e6b4321231d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29329 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 diff --git a/screenshot/win-file.png b/screenshot/win-file.png deleted file mode 100644 index 917711830741abf341da2ecc9ad6a080cc71741c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22939 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 X9{nLYUStbK;MCfFj3L+F11MaB;0 diff --git a/sftp.go b/sftp.go index 52a1035..6b01316 100644 --- a/sftp.go +++ b/sftp.go @@ -4,11 +4,11 @@ import ( "context" "fmt" "io" + "log/slog" "strings" "time" "github.com/pkg/sftp" - log "github.com/sirupsen/logrus" "golang.org/x/crypto/ssh" ) @@ -69,10 +69,10 @@ type SftpClient struct { } func (c *SftpClient) List(ctx context.Context, prefix, marker string) (data []File, nextMarker string, err error) { - log.WithFields(log.Fields{ - "marker": marker, - "prefix": prefix, - }).Debug("s3 list") + slog.Debug("s3 list", + slog.String("marker", marker), + slog.String("prefix", prefix), + ) if prefix == "" { prefix = c.Pwd }