@@ -3,11 +3,15 @@ package gateway
3
3
import (
4
4
"context"
5
5
"fmt"
6
+ "log"
6
7
"net"
7
8
"net/http"
8
9
"net/http/httputil"
9
10
"net/url"
11
+ "os"
10
12
"time"
13
+
14
+ "github.com/sirupsen/logrus"
11
15
)
12
16
13
17
const (
@@ -50,6 +54,13 @@ type Proxy struct {
50
54
reverseProxy * httputil.ReverseProxy
51
55
}
52
56
57
+ type logrusErrorWriter struct {}
58
+
59
+ func (w logrusErrorWriter ) Write (p []byte ) (n int , err error ) {
60
+ logrus .Errorf ("%s" , string (p ))
61
+ return len (p ), nil
62
+ }
63
+
53
64
func NewProxy (targetURL string , upstream Upstream , component string ) (* Proxy , error ) {
54
65
url , err := url .Parse (targetURL )
55
66
if err != nil {
@@ -63,6 +74,7 @@ func NewProxy(targetURL string, upstream Upstream, component string) (*Proxy, er
63
74
reverseProxy .Transport = customTransport (component , upstream )
64
75
originalDirector := reverseProxy .Director
65
76
reverseProxy .Director = customDirector (url , originalDirector )
77
+ reverseProxy .ErrorLog = log .New (logrusErrorWriter {}, "" , 0 )
66
78
67
79
if upstream .HTTPClientTimeout == 0 {
68
80
upstream .HTTPClientTimeout = defaultTimeoutValues [component ].HTTPClientTimeout
@@ -102,8 +114,8 @@ func customTransport(component string, upstream Upstream) http.RoundTripper {
102
114
103
115
url , err := url .Parse (upstream .URL )
104
116
if err != nil {
105
- // TODO: log the error with logrus
106
- fmt . Println ( err )
117
+ logrus . Errorf ( "unexpected error when parsing the upstream url: %s" , err )
118
+ os . Exit ( 1 )
107
119
}
108
120
109
121
resolver := DefaultDNSResolver {}
0 commit comments