Properly init standard and error logging
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
6df1805f21
commit
972e7b6243
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user