immucore/internal/utils/log.go

41 lines
926 B
Go
Raw Normal View History

package utils
import (
"io"
"os"
"path/filepath"
"github.com/kairos-io/immucore/internal/constants"
"github.com/rs/zerolog"
)
var Log zerolog.Logger
var logFile *os.File
func CloseLogFiles() {
logFile.Close()
}
func SetLogger() {
var loggers []io.Writer
_ = os.MkdirAll(constants.LogDir, os.ModeDir|os.ModePerm)
logFile, err := os.Create(filepath.Join(constants.LogDir, "immucore.log"))
if err == nil {
loggers = append(loggers, zerolog.ConsoleWriter{Out: logFile})
}
loggers = append(loggers, zerolog.ConsoleWriter{Out: os.Stderr})
multi := zerolog.MultiLevelWriter(loggers...)
Log = zerolog.New(multi).With().Logger()
Log.WithLevel(zerolog.InfoLevel)
// Set debug logger
debug := len(ReadCMDLineArg("rd.immucore.debug")) > 0
debugFromEnv := os.Getenv("IMMUCORE_DEBUG") != ""
if debug || debugFromEnv {
Log = zerolog.New(multi).With().Caller().Logger()
Log.WithLevel(zerolog.DebugLevel)
}
}