diff --git a/README.md b/README.md index 59fe25d..131e217 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,15 @@ Also provided are a few simple methods for handling returned `error` variables, var ( // DebugLevel indicates if we should log at the debug level DebugLevel = true + + // LoggerInfo is the slog Info logger + LoggerInfo = log.New(os.Stderr, "INFO ", defaultFlags) + // LoggerWarning is the slog Warning logger + LoggerWarning = log.New(os.Stderr, "WARNING ", defaultFlags) + // LoggerError is the slog Error logger + LoggerError = log.New(os.Stderr, "ERROR ", defaultFlags) + // LoggerDebug is the slog Debug logger + LoggerDebug = log.New(os.Stderr, "DEBUG ", defaultFlags) ) FUNCTIONS @@ -47,6 +56,9 @@ Also provided are a few simple methods for handling returned `error` variables, func SetFlags(flag int) SetFlags allows changing the logger flags using flags found in `log` + func SetOutput(w io.Writer) + SetOutput allows changing the output of all loggers + func WarnOnErr(err error, format string, v ...interface{}) WarnOnErr if error provided, will provide a warning if an error is provided diff --git a/slog.go b/slog.go index e1093fc..94db415 100644 --- a/slog.go +++ b/slog.go @@ -4,6 +4,7 @@ package slog import ( + "io" "log" "os" ) @@ -25,20 +26,29 @@ var ( LoggerError = log.New(os.Stderr, "ERROR ", defaultFlags) // LoggerDebug is the slog Debug logger LoggerDebug = log.New(os.Stderr, "DEBUG ", defaultFlags) -) -// SetFlags allows changing the logger flags using flags found in `log` -func SetFlags(flag int) { - for _, logger := range []*log.Logger{ + allLoggers = []*log.Logger{ LoggerInfo, LoggerWarning, LoggerError, LoggerDebug, - } { + } +) + +// SetFlags allows changing the logger flags using flags found in `log` +func SetFlags(flag int) { + for _, logger := range allLoggers { logger.SetFlags(flag) } } +// SetOutput allows changing the output of all loggers +func SetOutput(w io.Writer) { + for _, logger := range allLoggers { + logger.SetOutput(w) + } +} + // Log formats logs directly to the main logger func Log(format string, v ...interface{}) { log.Printf(format, v...)