~xenrox/go-log

dfed95a0aeeed0d455fde7f20efeceb5e1646c34 — Thorben Günther 1 year, 6 months ago 850893c
Add function to parse level from string
1 files changed, 22 insertions(+), 0 deletions(-)

M log.go
M log.go => log.go +22 -0
@@ 1,9 1,12 @@
package log

import (
	"errors"
	"fmt"
	"io"
	"log"
	"os"
	"strings"
)

type Level int


@@ 15,6 18,8 @@ const (
	Debug
)

var ErrInvalidLevel = errors.New("cannot parse log-level from string")

type Logger struct {
	*log.Logger
	level Level


@@ 32,6 37,23 @@ func (l *Logger) SetLevel(level Level) {
	l.level = level
}

func (l *Logger) ParseLevel(level string) error {
	switch strings.ToLower(level) {
	case "error":
		l.level = Error
	case "warning":
		l.level = Warning
	case "info":
		l.level = Info
	case "debug":
		l.level = Debug
	default:
		return fmt.Errorf("%w: %s", ErrInvalidLevel, level)
	}

	return nil
}

func (l *Logger) Fatalf(format string, v ...interface{}) {
	format = "FATAL: " + format
	l.Logger.Fatalf(format, v...)