diff --git a/internal/router/logger.go b/internal/router/logger.go new file mode 100644 index 000000000..461fcf442 --- /dev/null +++ b/internal/router/logger.go @@ -0,0 +1 @@ +package router \ No newline at end of file diff --git a/internal/router/router.go b/internal/router/router.go index 621d93ff5..df08a6b5e 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -21,6 +21,7 @@ package router import ( "context" "fmt" + "log" "net/http" "time" @@ -119,8 +120,26 @@ func New(ctx context.Context, cfg *config.Config, db db.DB, logger *logrus.Logge } // create the actual engine here -- this is the core request routing handler for gts - engine := gin.Default() - engine.MaxMultipartMemory = 8 << 20 // 8 MiB + engine := gin.New() + + // paths to not log requests to + dontLog := []string{ + // don't print requests to the streaming API to avoid leaking tokens + "/api/v1/streaming", + } + + // instruct gin to write out to our logger + loggingConfig := gin.LoggerConfig{ + Formatter: logFormatter, + Output: log.Writer(), + SkipPaths: dontLog, + } + + engine.Use(gin.RecoveryWithWriter(logger.Writer())) + engine.Use(gin.LoggerWithConfig(loggingConfig)) + + // 8 MiB + engine.MaxMultipartMemory = 8 << 20 // set up IP forwarding via x-forward-* headers. if err := engine.SetTrustedProxies(cfg.TrustedProxies); err != nil { diff --git a/testrig/log.go b/testrig/log.go index 0bafc96f7..ae2e4b19c 100644 --- a/testrig/log.go +++ b/testrig/log.go @@ -18,11 +18,17 @@ package testrig -import "github.com/sirupsen/logrus" +import ( + "github.com/superseriousbusiness/gotosocial/internal/log" + + "github.com/sirupsen/logrus" +) // NewTestLog returns a trace level logger for testing func NewTestLog() *logrus.Logger { - log := logrus.New() - log.SetLevel(logrus.TraceLevel) - return log + logger, err := log.New("trace") + if err != nil { + panic(err) + } + return logger }