• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mendersoftware / mender-server / 1841089804

28 May 2025 02:00PM UTC coverage: 66.653% (+0.8%) from 65.861%
1841089804

Pull #688

gitlab-ci

alfrunes
Merge branch 'QA-887' into 'main'
Pull Request #688: QA-887: Migrate inventory acceptance tests to OAS genertaed clients

29840 of 44769 relevant lines covered (66.65%)

1.44 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

88.89
/backend/pkg/requestlog/middleware.go
1
// Copyright 2023 Northern.tech AS
2
//
3
//        Licensed under the Apache License, Version 2.0 (the "License");
4
//        you may not use this file except in compliance with the License.
5
//        You may obtain a copy of the License at
6
//
7
//            http://www.apache.org/licenses/LICENSE-2.0
8
//
9
//        Unless required by applicable law or agreed to in writing, software
10
//        distributed under the License is distributed on an "AS IS" BASIS,
11
//        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//        See the License for the specific language governing permissions and
13
//        limitations under the License.
14
package requestlog
15

16
import (
17
        "github.com/ant0ine/go-json-rest/rest"
18
        "github.com/sirupsen/logrus"
19

20
        "github.com/mendersoftware/mender-server/pkg/log"
21
)
22

23
// RequestLogMiddleware creates a per-request logger and sticks it into
24
// http.Request context. The logger will be ready to use in the handler (less
25
// boilerplate). Other middlewares (notably requestid) may add context to the
26
// log. Per-request loggers will by default be derived from the global log.Log,
27
// unless BaseLogger is specified. In that case, it will serve as the root
28
// logger. Additional context can be attached by setting LogContext field.
29
type RequestLogMiddleware struct {
30
        BaseLogger *logrus.Logger
31
        LogContext log.Ctx
32
}
33

34
// MiddlewareFunc makes RequestLogMiddleware implement the Middleware interface.
35
func (mw *RequestLogMiddleware) MiddlewareFunc(h rest.HandlerFunc) rest.HandlerFunc {
4✔
36
        return func(w rest.ResponseWriter, r *rest.Request) {
8✔
37
                var l *log.Logger
4✔
38
                if mw.BaseLogger == nil {
8✔
39
                        l = log.New(mw.LogContext)
4✔
40
                } else {
4✔
41
                        l = log.NewFromLogger(mw.BaseLogger, mw.LogContext)
×
42
                }
×
43

44
                r = SetRequestLogger(r, l)
4✔
45
                h(w, r)
4✔
46
        }
47
}
48

49
// GetRequestLogger will return a logger associated with the request.
50
func GetRequestLogger(r *rest.Request) *log.Logger {
4✔
51
        return log.FromContext(r.Context())
4✔
52
}
4✔
53

54
// SetRequestLogger assigns logger l to request r by putting it in request
55
// context.
56
func SetRequestLogger(r *rest.Request, l *log.Logger) *rest.Request {
4✔
57
        ctx := log.WithContext(r.Context(), l)
4✔
58
        r.Request = r.Request.WithContext(ctx)
4✔
59
        return r
4✔
60
}
4✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc