/
clilogger.go
39 lines (32 loc) · 711 Bytes
/
clilogger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package clilogger
import (
"net/http"
"os"
"github.com/Sirupsen/logrus"
"github.com/moul/http2curl"
"github.com/scaleway/scaleway-cli/pkg/api"
)
type cliLogger struct {
*logrus.Logger
s *api.ScalewayAPI
}
func (l *cliLogger) LogHTTP(req *http.Request) {
curl, err := http2curl.GetCurlCommand(req)
if err != nil {
l.Fatalf("Failed to convert to curl request: %q", err)
}
if os.Getenv("SCW_SENSITIVE") != "1" {
l.Debug(l.s.HideAPICredentials(curl.String()))
} else {
l.Debug(curl.String())
}
}
func NewCliLogger(s *api.ScalewayAPI) api.Logger {
return &cliLogger{
Logger: logrus.StandardLogger(),
s: s,
}
}
func SetupLogger(s *api.ScalewayAPI) {
s.Logger = NewCliLogger(s)
}