91 lines
1.7 KiB
Go
91 lines
1.7 KiB
Go
package log
|
|
|
|
import (
|
|
"github.com/rs/zerolog"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
const ApplicationSupportDir = "/Library/Application Support/EpochSilicon"
|
|
|
|
var (
|
|
logger zerolog.Logger
|
|
logFilePointer *os.File
|
|
logFilePath = filepath.Join(ApplicationSupportDir, "EpochSilicon.log")
|
|
)
|
|
|
|
func SetupLogging() {
|
|
logFilePointer = nil
|
|
ToConsole(zerolog.InfoLevel)
|
|
}
|
|
|
|
func Close() {
|
|
if logFilePointer != nil {
|
|
logFilePointer.Close()
|
|
}
|
|
}
|
|
|
|
func ToFile(level zerolog.Level) {
|
|
Close()
|
|
var err error
|
|
logFilePointer, err = os.OpenFile(logFilePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
|
|
if err != nil {
|
|
logger.Error().Msg(err.Error())
|
|
return
|
|
}
|
|
logger = zerolog.New(logFilePointer).With().Timestamp().Logger().Level(level)
|
|
}
|
|
|
|
func ToConsole(level zerolog.Level) {
|
|
Close()
|
|
logger = zerolog.New(os.Stdout).With().Timestamp().Logger().Level(level)
|
|
}
|
|
|
|
func Debug(msg string) {
|
|
logger.Debug().Msg(msg)
|
|
}
|
|
|
|
func Debugf(format string, args ...interface{}) {
|
|
logger.Debug().Msgf(format, args...)
|
|
}
|
|
|
|
func Info(msg string) {
|
|
logger.Info().Msg(msg)
|
|
}
|
|
|
|
func Infof(format string, args ...interface{}) {
|
|
logger.Info().Msgf(format, args...)
|
|
}
|
|
|
|
func Warn(msg string) {
|
|
logger.Warn().Msg(msg)
|
|
}
|
|
|
|
func Warnf(format string, args ...interface{}) {
|
|
logger.Warn().Msgf(format, args...)
|
|
}
|
|
|
|
func Error(msg string) {
|
|
logger.Error().Msg(msg)
|
|
}
|
|
|
|
func Errorf(format string, args ...interface{}) {
|
|
logger.Error().Msgf(format, args...)
|
|
}
|
|
|
|
func Fatal(msg string) {
|
|
logger.Fatal().Msg(msg)
|
|
}
|
|
|
|
func Fatalf(format string, args ...interface{}) {
|
|
logger.Fatal().Msgf(format, args...)
|
|
}
|
|
|
|
func Panic(msg string) {
|
|
logger.Panic().Msg(msg)
|
|
}
|
|
|
|
func Panicf(format string, args ...interface{}) {
|
|
logger.Panic().Msgf(format, args...)
|
|
}
|