Properly init standard and error logging
continuous-integration/drone/push Build is passing Details

This commit is contained in:
kolaente 2019-01-24 10:36:52 +01:00
parent 6df1805f21
commit 972e7b6243
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 24 additions and 46 deletions

View File

@ -80,9 +80,9 @@ func init() {
viper.SetDefault("log.enabled", true)
viper.SetDefault("log.errors", "stdout")
viper.SetDefault("log.standard", "stdout")
viper.SetDefault("log.database", false)
viper.SetDefault("log.http", true)
viper.SetDefault("log.echo", false) // Echo has its own logging which usually is unnessecary.
viper.SetDefault("log.database", "off")
viper.SetDefault("log.http", "stdout")
viper.SetDefault("log.echo", "off")
viper.SetDefault("log.path", viper.GetString("service.rootpath")+"/logs")
// Init checking for environment variables

View File

@ -53,47 +53,42 @@ func InitLogger() {
// TODO: work out how to set up the other log stuff
// TODO: Docs for new config options
var logBackends []logging.Backend
// We define our two backends
stdWriter, _ := GetLogWriter()
/*defer func() {
if err := stdfile.Close(); err != nil {
log.Fatal(err)
}
}()*/
if viper.GetString("log.standard") != "off" {
stdWriter := GetLogWriter("standard")
stdBackend := logging.NewLogBackend(stdWriter, "", 0)
errWriter, _ := GetErrorLogWriter()
/*defer func() {
if err := errFile.Close(); err != nil {
log.Fatal(err)
}
}()*/
errBackend := logging.NewLogBackend(errWriter, "", 0)
stdBackend := logging.NewLogBackend(stdWriter, "", 0)
// Set the standard backend
logBackends = append(logBackends, logging.NewBackendFormatter(stdBackend, logging.MustStringFormatter(Fmt+"\n")))
}
// Set the standard backend
stdBackendFormatter := logging.NewBackendFormatter(stdBackend, logging.MustStringFormatter(Fmt+"\n"))
if viper.GetString("log.error") != "off" {
errWriter := GetLogWriter("error")
errBackend := logging.NewLogBackend(errWriter, "", 0)
// Only warnings and more severe messages should go to the error backend
errBackendLeveled := logging.AddModuleLevel(errBackend)
errBackendLeveled.SetLevel(logging.WARNING, "")
// Only warnings and more severe messages should go to the error backend
errBackendLeveled := logging.AddModuleLevel(errBackend)
errBackendLeveled.SetLevel(logging.WARNING, "")
logBackends = append(logBackends, errBackendLeveled)
}
// TODO: make a setting to define where logging should go (file, stdout)
// Set our backends
logging.SetBackend(stdBackendFormatter, errBackendLeveled)
logging.SetBackend(logBackends...)
}
// TODO: Refactor these bot functions (it probably isn't needed to return the file shit)
// GetLogWriter returns the writer to where the normal log goes, depending on the config
func GetLogWriter() (writer io.Writer, logfile *os.File) {
switch viper.GetString("log.standard") {
func GetLogWriter(logfile string) (writer io.Writer) {
switch viper.GetString("log." + logfile) {
case "file":
logfile, err := os.OpenFile(viper.GetString("log.path")+"/standard.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
f, err := os.OpenFile(viper.GetString("log.path")+"/"+logfile+".log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Fatal(err)
}
writer = logfile
writer = f
break
case "stdout":
default:
@ -101,20 +96,3 @@ func GetLogWriter() (writer io.Writer, logfile *os.File) {
}
return
}
// GetErrorLogWriter returns the writer to where the error log goes, depending on the config
func GetErrorLogWriter() (writer io.Writer, logfile *os.File) {
switch viper.GetString("log.error") {
case "file":
logfile, err := os.OpenFile(viper.GetString("log.path")+"/error.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Fatal(err)
}
writer = logfile
break
case "stdout":
default:
writer = os.Stderr
}
return
}