🎨 Allow to pass by a logger interface to context

This commit is contained in:
Ettore Di Giacinto
2022-05-26 13:06:47 +00:00
committed by GitHub
parent d6ae727d79
commit edd2275bf5
6 changed files with 19 additions and 15 deletions

View File

@@ -25,6 +25,7 @@ import (
log "github.com/ipfs/go-log/v2"
"github.com/kyokomi/emoji"
"github.com/mudler/luet/pkg/api/core/types"
"github.com/pterm/pterm"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
@@ -114,18 +115,19 @@ func New(opts ...LoggerOptions) (*Logger, error) {
return l, nil
}
func (l *Logger) Copy(opts ...LoggerOptions) (*Logger, error) {
// Copy returns a copy of the logger
func (l *Logger) Copy() (types.Logger, error) {
c := *l
copy := &c
for _, o := range opts {
if err := o(copy); err != nil {
return nil, err
}
}
return copy, nil
}
// SetContext sets the logger context, used to prefix log lines
func (l *Logger) SetContext(name string) {
l.context = name
}
func joinMsg(args ...interface{}) (message string) {
for _, m := range args {
message += " " + fmt.Sprintf("%v", m)