internal/command/lfstransfer/gitlab_logger.go (28 lines of code) (raw):

// Package lfstransfer wraps https://github.com/charmbracelet/git-lfs-transfer logic package lfstransfer import ( "context" "gitlab.com/gitlab-org/labkit/log" ) // WrappedLoggerForGitLFSTransfer is responsible for creating a compatible logger // for github.com/charmbracelet/git-lfs-transfer type WrappedLoggerForGitLFSTransfer struct { ctx context.Context } // NewWrappedLoggerForGitLFSTransfer returns a new WrappedLoggerForGitLFSTransfer // passing through context.Context func NewWrappedLoggerForGitLFSTransfer(ctx context.Context) *WrappedLoggerForGitLFSTransfer { return &WrappedLoggerForGitLFSTransfer{ctx: ctx} } // Log allows logging in github.com/charmbracelet/git-lfs-transfer to take place // using gitlab.com/gitlab-org/labkit/log func (l *WrappedLoggerForGitLFSTransfer) Log(msg string, args ...interface{}) { fields := make(map[string]interface{}) fieldsFallback := map[string]interface{}{"args": args} for i := 0; i < len(args); i += 2 { if i >= len(args)-1 { fields = fieldsFallback break } if arg, ok := args[i].(string); ok { fields[arg] = args[i+1] } else { fields = fieldsFallback break } } log.WithContextFields(l.ctx, fields).Info(msg) }