mirror of
https://github.com/phishingclub/phishingclub.git
synced 2026-02-12 16:12:44 +00:00
55 lines
1.2 KiB
Go
55 lines
1.2 KiB
Go
package log
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/wneessen/go-mail/log"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// GoMailLoggerAdapter adapts zap.SugaredLogger to go-mail's Logger interface
|
|
type GoMailLoggerAdapter struct {
|
|
logger *zap.SugaredLogger
|
|
}
|
|
|
|
func (z *GoMailLoggerAdapter) formatLogMessage(l log.Log) string {
|
|
direction := "CLIENT"
|
|
if l.Direction == log.DirServerToClient {
|
|
direction = "SERVER"
|
|
}
|
|
|
|
// format the message with arguments if present
|
|
msg := l.Format
|
|
if len(l.Messages) > 0 {
|
|
// create interface slice for fmt.Sprintf
|
|
args := make([]interface{}, len(l.Messages))
|
|
for i, m := range l.Messages {
|
|
args[i] = m
|
|
}
|
|
msg = fmt.Sprintf(l.Format, args...)
|
|
}
|
|
|
|
return fmt.Sprintf("SMTP %s: %s", direction, msg)
|
|
}
|
|
|
|
func (z *GoMailLoggerAdapter) Debugf(l log.Log) {
|
|
z.logger.Debug(z.formatLogMessage(l))
|
|
}
|
|
|
|
func (z *GoMailLoggerAdapter) Infof(l log.Log) {
|
|
z.logger.Info(z.formatLogMessage(l))
|
|
}
|
|
|
|
func (z *GoMailLoggerAdapter) Warnf(l log.Log) {
|
|
z.logger.Warn(z.formatLogMessage(l))
|
|
}
|
|
|
|
func (z *GoMailLoggerAdapter) Errorf(l log.Log) {
|
|
z.logger.Error(z.formatLogMessage(l))
|
|
}
|
|
|
|
// NewGoMailLoggerAdapter creates a new go-mail logger adapter
|
|
func NewGoMailLoggerAdapter(logger *zap.SugaredLogger) *GoMailLoggerAdapter {
|
|
return &GoMailLoggerAdapter{logger: logger}
|
|
}
|