mirror of
https://github.com/kubescape/kubescape.git
synced 2026-04-15 06:58:11 +00:00
52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
package logger
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/armosec/kubescape/cautils/logger/helpers"
|
|
"github.com/armosec/kubescape/cautils/logger/prettylogger"
|
|
"github.com/armosec/kubescape/cautils/logger/zaplogger"
|
|
"github.com/mattn/go-isatty"
|
|
)
|
|
|
|
type ILogger interface {
|
|
Fatal(msg string, details ...helpers.IDetails) // print log and exit 1
|
|
Error(msg string, details ...helpers.IDetails)
|
|
Success(msg string, details ...helpers.IDetails)
|
|
Warning(msg string, details ...helpers.IDetails)
|
|
Info(msg string, details ...helpers.IDetails)
|
|
Debug(msg string, details ...helpers.IDetails)
|
|
|
|
SetLevel(level string) error
|
|
GetLevel() string
|
|
|
|
SetWriter(w *os.File)
|
|
GetWriter() *os.File
|
|
}
|
|
|
|
var l ILogger
|
|
|
|
func L() ILogger {
|
|
if l == nil {
|
|
InitializeLogger("")
|
|
}
|
|
return l
|
|
}
|
|
|
|
func InitializeLogger(loggerName string) {
|
|
|
|
switch strings.ToLower(loggerName) {
|
|
case "zap":
|
|
l = zaplogger.NewZapLogger()
|
|
case "pretty":
|
|
l = prettylogger.NewPrettyLogger()
|
|
default:
|
|
if isatty.IsTerminal(os.Stdout.Fd()) {
|
|
l = prettylogger.NewPrettyLogger()
|
|
} else {
|
|
l = zaplogger.NewZapLogger()
|
|
}
|
|
}
|
|
}
|