use logrus for gin's log output

This commit is contained in:
Christoph Haas
2021-01-13 17:27:01 +01:00
parent d978fd560d
commit ec752f8b08
3 changed files with 63 additions and 5 deletions

View File

@@ -1,19 +1,71 @@
package main
import (
"io/ioutil"
"os"
"github.com/h44z/wg-portal/internal/server"
log "github.com/sirupsen/logrus"
"github.com/sirupsen/logrus"
)
func main() {
log.Infof("Starting WireGuard Portal Server...")
_ = setupLogger(logrus.StandardLogger())
logrus.Infof("Starting WireGuard Portal Server...")
service := server.Server{}
if err := service.Setup(); err != nil {
log.Fatalf("Setup failed: %v", err)
logrus.Fatalf("Setup failed: %v", err)
}
service.Run()
log.Infof("Stopped WireGuard Portal Server...")
logrus.Infof("Stopped WireGuard Portal Server...")
}
func setupLogger(logger *logrus.Logger) error {
// Check environment variables for logrus settings
level, ok := os.LookupEnv("LOG_LEVEL")
if !ok {
level = "debug" // Default logrus level
}
useJSON, ok := os.LookupEnv("LOG_JSON")
if !ok {
useJSON = "false" // Default use human readable logging
}
useColor, ok := os.LookupEnv("LOG_COLOR")
if !ok {
useColor = "true"
}
switch level {
case "off":
logger.SetOutput(ioutil.Discard)
case "info":
logger.SetLevel(logrus.InfoLevel)
case "debug":
logger.SetLevel(logrus.DebugLevel)
case "trace":
logger.SetLevel(logrus.TraceLevel)
}
var formatter logrus.Formatter
if useJSON == "false" {
f := new(logrus.TextFormatter)
f.TimestampFormat = "2006-01-02 15:04:05"
f.FullTimestamp = true
if useColor == "true" {
f.ForceColors = true
}
formatter = f
} else {
f := new(logrus.JSONFormatter)
f.TimestampFormat = "2006-01-02 15:04:05"
}
logger.SetFormatter(formatter)
return nil
}