From c437f0ad76fc22552037fb64e7cde7acf5b0e4d8 Mon Sep 17 00:00:00 2001 From: Nicola Murino Date: Sun, 20 Aug 2023 21:42:41 +0200 Subject: [PATCH] logger: update mail adapter Signed-off-by: Nicola Murino --- go.mod | 4 ++-- go.sum | 8 ++++---- internal/logger/mail.go | 42 +++++++++++++++++++++++++++++------------ 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 2176f1f0..a25e8661 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,7 @@ require ( github.com/subosito/gotenv v1.6.0 github.com/unrolled/secure v1.13.0 github.com/wagslane/go-password-validator v0.3.0 - github.com/wneessen/go-mail v0.4.0 + github.com/wneessen/go-mail v0.4.1-0.20230815095916-0189acf1e45f github.com/yl2chen/cidranger v1.0.3-0.20210928021809-d1cb2c52f37a go.etcd.io/bbolt v1.3.7 go.uber.org/automaxprocs v1.5.3 @@ -172,7 +172,7 @@ require ( ) replace ( - github.com/fclairamb/ftpserverlib => github.com/drakkan/ftpserverlib v0.0.0-20230820134433-b2a9de7897b3 + github.com/fclairamb/ftpserverlib => github.com/drakkan/ftpserverlib v0.0.0-20230820193955-e7243edeb89b github.com/jlaffaye/ftp => github.com/drakkan/ftp v0.0.0-20201114075148-9b9adce499a9 github.com/robfig/cron/v3 => github.com/drakkan/cron/v3 v3.0.0-20230222140221-217a1e4d96c0 golang.org/x/crypto => github.com/drakkan/crypto v0.0.0-20230804183749-f40d052136b8 diff --git a/go.sum b/go.sum index 3b270ff8..89b15345 100644 --- a/go.sum +++ b/go.sum @@ -160,8 +160,8 @@ github.com/drakkan/crypto v0.0.0-20230804183749-f40d052136b8 h1:TUieQf6mz4xlWJav github.com/drakkan/crypto v0.0.0-20230804183749-f40d052136b8/go.mod h1:jjOR8ZXZPvxgpYUhVmAtGUCuD1OFc5Hq984QRL686so= github.com/drakkan/ftp v0.0.0-20201114075148-9b9adce499a9 h1:LPH1dEblAOO/LoG7yHPMtBLXhQmjaga91/DDjWk9jWA= github.com/drakkan/ftp v0.0.0-20201114075148-9b9adce499a9/go.mod h1:2lmrmq866uF2tnje75wQHzmPXhmSWUt7Gyx2vgK1RCU= -github.com/drakkan/ftpserverlib v0.0.0-20230820134433-b2a9de7897b3 h1:z1XhTv2fAIkd0/T6NtYwW78iZWxwZclBPXcqiQnUELw= -github.com/drakkan/ftpserverlib v0.0.0-20230820134433-b2a9de7897b3/go.mod h1:dI9/yw/KfJ0g4wmRK8ZukUfqakLr6ZTf9VDydKoLy90= +github.com/drakkan/ftpserverlib v0.0.0-20230820193955-e7243edeb89b h1:sCtiYerLxfOQrSludkwGwwXLlSVHxpvfmyOxjCOf0ec= +github.com/drakkan/ftpserverlib v0.0.0-20230820193955-e7243edeb89b/go.mod h1:dI9/yw/KfJ0g4wmRK8ZukUfqakLr6ZTf9VDydKoLy90= github.com/drakkan/webdav v0.0.0-20230227175313-32996838bcd8 h1:tdkLkSKtYd3WSDsZXGJDKsakiNstLQJPN5HjnqCkf2c= github.com/drakkan/webdav v0.0.0-20230227175313-32996838bcd8/go.mod h1:zOVb1QDhwwqWn2L2qZ0U3swMSO4GTSNyIwXCGO/UGWE= github.com/eikenb/pipeat v0.0.0-20210730190139-06b3e6902001 h1:/ZshrfQzayqRSBDodmp3rhNCHJCff+utvgBuWRbiqu4= @@ -493,8 +493,8 @@ github.com/unrolled/secure v1.13.0 h1:sdr3Phw2+f8Px8HE5sd1EHdj1aV3yUwed/uZXChLFs github.com/unrolled/secure v1.13.0/go.mod h1:BmF5hyM6tXczk3MpQkFf1hpKSRqCyhqcbiQtiAF7+40= github.com/wagslane/go-password-validator v0.3.0 h1:vfxOPzGHkz5S146HDpavl0cw1DSVP061Ry2PX0/ON6I= github.com/wagslane/go-password-validator v0.3.0/go.mod h1:TI1XJ6T5fRdRnHqHt14pvy1tNVnrwe7m3/f1f2fDphQ= -github.com/wneessen/go-mail v0.4.0 h1:Oo4HLIV8My7G9JuZkoOX6eipXQD+ACvIqURYeIzUc88= -github.com/wneessen/go-mail v0.4.0/go.mod h1:zxOlafWCP/r6FEhAaRgH4IC1vg2YXxO0Nar9u0IScZ8= +github.com/wneessen/go-mail v0.4.1-0.20230815095916-0189acf1e45f h1:IYzF42VUzA6es43UO0q8rdB1+d7fge5ALPOVKN192jA= +github.com/wneessen/go-mail v0.4.1-0.20230815095916-0189acf1e45f/go.mod h1:zxOlafWCP/r6FEhAaRgH4IC1vg2YXxO0Nar9u0IScZ8= github.com/yl2chen/cidranger v1.0.3-0.20210928021809-d1cb2c52f37a h1:XfF01GyP+0eWCaVp0y6rNN+kFp7pt9Da4UUYrJ5XPWA= github.com/yl2chen/cidranger v1.0.3-0.20210928021809-d1cb2c52f37a/go.mod h1:aXb8yZQEWo1XHGMf1qQfnb83GR/EJ2EBlwtUgAaNBoE= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= diff --git a/internal/logger/mail.go b/internal/logger/mail.go index 3a81eaf8..be0d138a 100644 --- a/internal/logger/mail.go +++ b/internal/logger/mail.go @@ -14,6 +14,12 @@ package logger +import ( + "fmt" + + "github.com/wneessen/go-mail/log" +) + const ( mailLogSender = "smtpclient" ) @@ -24,25 +30,37 @@ type MailAdapter struct { } // Errorf emits a log at Error level -func (l *MailAdapter) Errorf(format string, v ...any) { - ErrorToConsole(format, v...) - Log(LevelError, mailLogSender, l.ConnectionID, format, v...) +func (l *MailAdapter) Errorf(logMsg log.Log) { + format := l.getFormatString(&logMsg) + ErrorToConsole(format, logMsg.Messages...) + Log(LevelError, mailLogSender, l.ConnectionID, format, logMsg.Messages...) } // Warnf emits a log at Warn level -func (l *MailAdapter) Warnf(format string, v ...any) { - WarnToConsole(format, v...) - Log(LevelWarn, mailLogSender, l.ConnectionID, format, v...) +func (l *MailAdapter) Warnf(logMsg log.Log) { + format := l.getFormatString(&logMsg) + WarnToConsole(format, logMsg.Messages...) + Log(LevelWarn, mailLogSender, l.ConnectionID, format, logMsg.Messages...) } // Infof emits a log at Info level -func (l *MailAdapter) Infof(format string, v ...any) { - InfoToConsole(format, v...) - Log(LevelInfo, mailLogSender, l.ConnectionID, format, v...) +func (l *MailAdapter) Infof(logMsg log.Log) { + format := l.getFormatString(&logMsg) + InfoToConsole(format, logMsg.Messages...) + Log(LevelInfo, mailLogSender, l.ConnectionID, format, logMsg.Messages...) } // Debugf emits a log at Debug level -func (l *MailAdapter) Debugf(format string, v ...any) { - DebugToConsole(format, v...) - Log(LevelDebug, mailLogSender, l.ConnectionID, format, v...) +func (l *MailAdapter) Debugf(logMsg log.Log) { + format := l.getFormatString(&logMsg) + DebugToConsole(format, logMsg.Messages...) + Log(LevelDebug, mailLogSender, l.ConnectionID, format, logMsg.Messages...) +} + +func (*MailAdapter) getFormatString(logMsg *log.Log) string { + p := "C <-- S:" + if logMsg.Direction == log.DirClientToServer { + p = "C --> S:" + } + return fmt.Sprintf("%s %s", p, logMsg.Format) }