github.com/AlpineAIO/wails/v2@v2.0.0-beta.32.0.20240505041856-1047a8fa5fef/pkg/logger/logger.go (about)

     1  package logger
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  )
     7  
     8  // LogLevel is an unsigned 8bit int
     9  type LogLevel uint8
    10  
    11  const (
    12  	// TRACE level
    13  	TRACE LogLevel = 1
    14  
    15  	// DEBUG level logging
    16  	DEBUG LogLevel = 2
    17  
    18  	// INFO level logging
    19  	INFO LogLevel = 3
    20  
    21  	// WARNING level logging
    22  	WARNING LogLevel = 4
    23  
    24  	// ERROR level logging
    25  	ERROR LogLevel = 5
    26  )
    27  
    28  var logLevelMap = map[string]LogLevel{
    29  	"trace":   TRACE,
    30  	"debug":   DEBUG,
    31  	"info":    INFO,
    32  	"warning": WARNING,
    33  	"error":   ERROR,
    34  }
    35  
    36  func StringToLogLevel(input string) (LogLevel, error) {
    37  	result, ok := logLevelMap[strings.ToLower(input)]
    38  	if !ok {
    39  		return ERROR, fmt.Errorf("invalid log level: %s", input)
    40  	}
    41  	return result, nil
    42  }
    43  
    44  // Logger specifies the methods required to attach
    45  // a logger to a Wails application
    46  type Logger interface {
    47  	Print(message string)
    48  	Trace(message string)
    49  	Debug(message string)
    50  	Info(message string)
    51  	Warning(message string)
    52  	Error(message string)
    53  	Fatal(message string)
    54  }