log.go 879 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package logger
  2. import (
  3. "fmt"
  4. "os"
  5. logrus "github.com/sirupsen/logrus"
  6. "github.com/imgproxy/imgproxy/v3/config/configurators"
  7. )
  8. func Init() error {
  9. logrus.SetOutput(os.Stdout)
  10. logFormat := "pretty"
  11. logLevel := "info"
  12. configurators.String(&logFormat, "IMGPROXY_LOG_FORMAT")
  13. configurators.String(&logLevel, "IMGPROXY_LOG_LEVEL")
  14. switch logFormat {
  15. case "structured":
  16. logrus.SetFormatter(&structuredFormatter{})
  17. case "json":
  18. logrus.SetFormatter(&logrus.JSONFormatter{})
  19. default:
  20. logrus.SetFormatter(newPrettyFormatter())
  21. }
  22. levelLogLevel, err := logrus.ParseLevel(logLevel)
  23. if err != nil {
  24. levelLogLevel = logrus.InfoLevel
  25. }
  26. logrus.SetLevel(levelLogLevel)
  27. if isSyslogEnabled() {
  28. slHook, err := newSyslogHook()
  29. if err != nil {
  30. return fmt.Errorf("Unable to connect to syslog daemon: %s", err)
  31. }
  32. logrus.AddHook(slHook)
  33. }
  34. return nil
  35. }