From 72e1513faee0425e079a673b7e9f844b2e638258 Mon Sep 17 00:00:00 2001 From: Haelnorr Date: Thu, 1 Jan 2026 14:54:14 +1100 Subject: [PATCH] cleaned up structure --- hlog/levels.go | 24 ++++++++++++++++++++++++ hlog/logfile.go | 23 +++++++++++++++++++++++ hlog/logger.go | 39 +++------------------------------------ 3 files changed, 50 insertions(+), 36 deletions(-) create mode 100644 hlog/levels.go create mode 100644 hlog/logfile.go diff --git a/hlog/levels.go b/hlog/levels.go new file mode 100644 index 0000000..de0bc1b --- /dev/null +++ b/hlog/levels.go @@ -0,0 +1,24 @@ +package hlog + +import "github.com/rs/zerolog" + +type Level = zerolog.Level + +// Takes a log level as string and converts it to a Level interface. +// If the string is not a valid input it will return InfoLevel +func LogLevel(level string) Level { + levels := map[string]zerolog.Level{ + "trace": zerolog.TraceLevel, + "debug": zerolog.DebugLevel, + "info": zerolog.InfoLevel, + "warn": zerolog.WarnLevel, + "error": zerolog.ErrorLevel, + "fatal": zerolog.FatalLevel, + "panic": zerolog.PanicLevel, + } + logLevel, valid := levels[level] + if !valid { + return zerolog.InfoLevel + } + return logLevel +} diff --git a/hlog/logfile.go b/hlog/logfile.go new file mode 100644 index 0000000..2cbc7a1 --- /dev/null +++ b/hlog/logfile.go @@ -0,0 +1,23 @@ +package hlog + +import ( + "os" + "path/filepath" + + "github.com/pkg/errors" +) + +// Returns a pointer to a new log file with the specified path. +// Remember to call file.Close() when finished writing to the log file +func NewLogFile(path string) (*os.File, error) { + logPath := filepath.Join(path, "server.log") + file, err := os.OpenFile( + logPath, + os.O_APPEND|os.O_CREATE|os.O_WRONLY, + 0663, + ) + if err != nil { + return nil, errors.Wrap(err, "os.OpenFile") + } + return file, nil +} diff --git a/hlog/logger.go b/hlog/logger.go index d1b5946..03fc5e2 100644 --- a/hlog/logger.go +++ b/hlog/logger.go @@ -3,55 +3,22 @@ package hlog import ( "io" "os" - "path/filepath" "github.com/pkg/errors" "github.com/rs/zerolog" "github.com/rs/zerolog/pkgerrors" ) -// Takes a log level as string and converts it to a zerolog.Level interface. -// If the string is not a valid input it will return zerolog.InfoLevel -func GetLogLevel(level string) zerolog.Level { - levels := map[string]zerolog.Level{ - "trace": zerolog.TraceLevel, - "debug": zerolog.DebugLevel, - "info": zerolog.InfoLevel, - "warn": zerolog.WarnLevel, - "error": zerolog.ErrorLevel, - "fatal": zerolog.FatalLevel, - "panic": zerolog.PanicLevel, - } - logLevel, valid := levels[level] - if !valid { - return zerolog.InfoLevel - } - return logLevel -} - -// Returns a pointer to a new log file with the specified path. -// Remember to call file.Close() when finished writing to the log file -func GetLogFile(path string) (*os.File, error) { - logPath := filepath.Join(path, "server.log") - file, err := os.OpenFile( - logPath, - os.O_APPEND|os.O_CREATE|os.O_WRONLY, - 0663, - ) - if err != nil { - return nil, errors.Wrap(err, "os.OpenFile") - } - return file, nil -} +type Logger = zerolog.Logger // Get a pointer to a new zerolog.Logger with the specified level and output // Can provide a file, writer or both. Must provide at least one of the two -func GetLogger( +func NewLogger( logLevel zerolog.Level, w io.Writer, logFile *os.File, logDir string, -) (*zerolog.Logger, error) { +) (*Logger, error) { if w == nil && logFile == nil { return nil, errors.New("No Writer provided for log output.") }