Align with go library layout

This commit is contained in:
Mathias Hall-Andersen
2018-02-04 16:08:26 +01:00
parent 5871ec04de
commit a0f54cbe5a
50 changed files with 4 additions and 4 deletions

50
logger.go Normal file
View File

@ -0,0 +1,50 @@
package main
import (
"io"
"io/ioutil"
"log"
"os"
)
const (
LogLevelError = iota
LogLevelInfo
LogLevelDebug
)
type Logger struct {
Debug *log.Logger
Info *log.Logger
Error *log.Logger
}
func NewLogger(level int, prepend string) *Logger {
output := os.Stdout
logger := new(Logger)
logErr, logInfo, logDebug := func() (io.Writer, io.Writer, io.Writer) {
if level >= LogLevelDebug {
return output, output, output
}
if level >= LogLevelInfo {
return output, output, ioutil.Discard
}
return output, ioutil.Discard, ioutil.Discard
}()
logger.Debug = log.New(logDebug,
"DEBUG: "+prepend,
log.Ldate|log.Ltime|log.Lshortfile,
)
logger.Info = log.New(logInfo,
"INFO: "+prepend,
log.Ldate|log.Ltime,
)
logger.Error = log.New(logErr,
"ERROR: "+prepend,
log.Ldate|log.Ltime,
)
return logger
}