12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package logger
- import (
- "fmt"
- "os"
- logrus "github.com/sirupsen/logrus"
- "github.com/imgproxy/imgproxy/v3/config/configurators"
- )
- func init() {
- // Configure logrus so it can be used before Init().
- // Structured formatter is a compromise between JSON and pretty formatters.
- logrus.SetOutput(os.Stdout)
- logrus.SetFormatter(&structuredFormatter{})
- }
- func Init() error {
- logrus.SetOutput(os.Stdout)
- logFormat := "pretty"
- logLevel := "info"
- configurators.String(&logFormat, "IMGPROXY_LOG_FORMAT")
- configurators.String(&logLevel, "IMGPROXY_LOG_LEVEL")
- switch logFormat {
- case "structured":
- logrus.SetFormatter(&structuredFormatter{})
- case "json":
- logrus.SetFormatter(&logrus.JSONFormatter{})
- case "gcp":
- logrus.SetFormatter(&logrus.JSONFormatter{
- FieldMap: logrus.FieldMap{
- "level": "severity",
- "msg": "message",
- },
- })
- default:
- logrus.SetFormatter(newPrettyFormatter())
- }
- levelLogLevel, err := logrus.ParseLevel(logLevel)
- if err != nil {
- levelLogLevel = logrus.InfoLevel
- }
- logrus.SetLevel(levelLogLevel)
- if isSyslogEnabled() {
- slHook, err := newSyslogHook()
- if err != nil {
- return fmt.Errorf("Unable to connect to syslog daemon: %s", err)
- }
- logrus.AddHook(slHook)
- }
- return nil
- }
|