< Summary - go-semantic-release Coverage

Information
Line coverage
100%
Covered lines: 26
Uncovered lines: 0
Coverable lines: 26
Total lines: 75
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Debug0%00100%
Info0%00100%
Warn0%00100%
Error0%00100%
log0%00100%

File(s)

/home/runner/work/go-semantic-release/go-semantic-release/internal/platform/logger.go

#LineLine coverage
 1package platform
 2
 3import (
 4  "fmt"
 5  "io"
 6  "os"
 7  "strings"
 8
 9  "github.com/jedi-knights/go-semantic-release/internal/ports"
 10)
 11
 12// Compile-time interface compliance check.
 13var _ ports.Logger = (*ConsoleLogger)(nil)
 14
 15// ConsoleLogger implements ports.Logger with formatted console output.
 16type ConsoleLogger struct {
 17  out   io.Writer
 18  level LogLevel
 19}
 20
 21// LogLevel controls minimum log level.
 22type LogLevel int
 23
 24const (
 25  LogDebug LogLevel = iota
 26  LogInfo
 27  LogWarn
 28  LogError
 29)
 30
 31// NewConsoleLogger creates a logger that writes to the given writer.
 32func NewConsoleLogger(out io.Writer, level LogLevel) *ConsoleLogger {
 33  return &ConsoleLogger{out: out, level: level}
 34}
 35
 36// DefaultLogger creates a logger writing to stderr at info level.
 37func DefaultLogger() *ConsoleLogger {
 38  return NewConsoleLogger(os.Stderr, LogInfo)
 39}
 40
 241func (l *ConsoleLogger) Debug(msg string, keysAndValues ...any) {
 142  if l.level <= LogDebug {
 143    l.log("DEBUG", msg, keysAndValues...)
 144  }
 45}
 46
 247func (l *ConsoleLogger) Info(msg string, keysAndValues ...any) {
 248  if l.level <= LogInfo {
 249    l.log("INFO", msg, keysAndValues...)
 250  }
 51}
 52
 253func (l *ConsoleLogger) Warn(msg string, keysAndValues ...any) {
 154  if l.level <= LogWarn {
 155    l.log("WARN", msg, keysAndValues...)
 156  }
 57}
 58
 159func (l *ConsoleLogger) Error(msg string, keysAndValues ...any) {
 160  if l.level <= LogError {
 161    l.log("ERROR", msg, keysAndValues...)
 162  }
 63}
 64
 565func (l *ConsoleLogger) log(level, msg string, keysAndValues ...any) {
 566  var sb strings.Builder
 567  _, _ = fmt.Fprintf(&sb, "[%s] %s", level, msg)
 568
 269  for i := 0; i+1 < len(keysAndValues); i += 2 {
 270    _, _ = fmt.Fprintf(&sb, " %v=%v", keysAndValues[i], keysAndValues[i+1])
 271  }
 572  sb.WriteString("\n")
 573
 574  _, _ = fmt.Fprint(l.out, sb.String())
 75}

Methods/Properties

Debug
Info
Warn
Error
log