amfora/logger/logger.go

45 lines
757 B
Go

package logger
// For debugging
import (
"io"
"io/ioutil"
"log"
"os"
)
var Logger *log.Logger
func GetLogger() (*log.Logger, error) {
if Logger != nil {
return Logger, nil
}
var writer io.Writer
var err error
debugModeEnabled := os.Getenv("AMFORA_DEBUG") == "1"
if debugModeEnabled {
writer, err = os.Create("debug.log")
if err != nil {
return nil, err
}
} else {
// Suppress all logging output if debug mode is disabled
writer = ioutil.Discard
}
Logger = log.New(writer, "", log.LstdFlags)
if !debugModeEnabled {
// Clear all flags to skip log output formatting step to increase
// performance somewhat if we're not logging anything
Logger.SetFlags(0)
}
Logger.Println("Started logger")
return Logger, nil
}