Browse Source

Rework logging

tags/0.9
9seconds 7 years ago
parent
commit
67151746b0

+ 6
- 14
wrappers/blockcipher.go View File

6
 	"crypto/cipher"
6
 	"crypto/cipher"
7
 	"net"
7
 	"net"
8
 
8
 
9
+	"go.uber.org/zap"
10
+
9
 	"github.com/9seconds/mtg/utils"
11
 	"github.com/9seconds/mtg/utils"
10
 	"github.com/juju/errors"
12
 	"github.com/juju/errors"
11
 )
13
 )
13
 type BlockCipher struct {
15
 type BlockCipher struct {
14
 	buf *bytes.Buffer
16
 	buf *bytes.Buffer
15
 
17
 
18
+	logger    *zap.SugaredLogger
16
 	conn      StreamReadWriteCloser
19
 	conn      StreamReadWriteCloser
17
 	encryptor cipher.BlockMode
20
 	encryptor cipher.BlockMode
18
 	decryptor cipher.BlockMode
21
 	decryptor cipher.BlockMode
60
 	return b.conn.Write(encrypted)
63
 	return b.conn.Write(encrypted)
61
 }
64
 }
62
 
65
 
63
-func (b *BlockCipher) LogDebug(msg string, data ...interface{}) {
64
-	b.conn.LogDebug(msg, data...)
65
-}
66
-
67
-func (b *BlockCipher) LogInfo(msg string, data ...interface{}) {
68
-	b.conn.LogInfo(msg, data...)
69
-}
70
-
71
-func (b *BlockCipher) LogWarn(msg string, data ...interface{}) {
72
-	b.conn.LogWarn(msg, data...)
73
-}
74
-
75
-func (b *BlockCipher) LogError(msg string, data ...interface{}) {
76
-	b.conn.LogError(msg, data...)
66
+func (b *BlockCipher) Logger() *zap.SugaredLogger {
67
+	return b.logger
77
 }
68
 }
78
 
69
 
79
 func (b *BlockCipher) LocalAddr() *net.TCPAddr {
70
 func (b *BlockCipher) LocalAddr() *net.TCPAddr {
92
 	return &BlockCipher{
83
 	return &BlockCipher{
93
 		buf:       &bytes.Buffer{},
84
 		buf:       &bytes.Buffer{},
94
 		conn:      conn,
85
 		conn:      conn,
86
+		logger:    conn.Logger().Named("block-cipher"),
95
 		encryptor: encryptor,
87
 		encryptor: encryptor,
96
 		decryptor: decryptor,
88
 		decryptor: decryptor,
97
 	}
89
 	}

+ 4
- 16
wrappers/conn.go View File

57
 }
57
 }
58
 
58
 
59
 func (c *Conn) Close() error {
59
 func (c *Conn) Close() error {
60
-	defer c.LogDebug("Closed connection")
60
+	defer c.logger.Debugw("Closed connection")
61
 	return c.conn.Close()
61
 	return c.conn.Close()
62
 }
62
 }
63
 
63
 
80
 	return c.conn.RemoteAddr().(*net.TCPAddr)
80
 	return c.conn.RemoteAddr().(*net.TCPAddr)
81
 }
81
 }
82
 
82
 
83
-func (c *Conn) LogDebug(msg string, data ...interface{}) {
84
-	c.logger.Debugw(msg, data...)
85
-}
86
-
87
-func (c *Conn) LogInfo(msg string, data ...interface{}) {
88
-	c.logger.Infow(msg, data...)
89
-}
90
-
91
-func (c *Conn) LogWarn(msg string, data ...interface{}) {
92
-	c.logger.Warnw(msg, data...)
93
-}
94
-
95
-func (c *Conn) LogError(msg string, data ...interface{}) {
96
-	c.logger.Errorw(msg, data...)
83
+func (c *Conn) Logger() *zap.SugaredLogger {
84
+	return c.logger
97
 }
85
 }
98
 
86
 
99
 func NewConn(conn net.Conn, connID string, purpose ConnPurpose, publicIPv4, publicIPv6 net.IP) StreamReadWriteCloser {
87
 func NewConn(conn net.Conn, connID string, purpose ConnPurpose, publicIPv4, publicIPv6 net.IP) StreamReadWriteCloser {
102
 		"local_address", conn.LocalAddr(),
90
 		"local_address", conn.LocalAddr(),
103
 		"remote_address", conn.RemoteAddr(),
91
 		"remote_address", conn.RemoteAddr(),
104
 		"purpose", purpose,
92
 		"purpose", purpose,
105
-	)
93
+	).Named("conn")
106
 
94
 
107
 	wrapper := Conn{
95
 	wrapper := Conn{
108
 		logger:     logger,
96
 		logger:     logger,

+ 13
- 26
wrappers/mtproto_abridged.go View File

6
 	"net"
6
 	"net"
7
 
7
 
8
 	"github.com/juju/errors"
8
 	"github.com/juju/errors"
9
+	"go.uber.org/zap"
9
 
10
 
10
 	"github.com/9seconds/mtg/mtproto"
11
 	"github.com/9seconds/mtg/mtproto"
11
 	"github.com/9seconds/mtg/utils"
12
 	"github.com/9seconds/mtg/utils"
18
 )
19
 )
19
 
20
 
20
 type MTProtoAbridged struct {
21
 type MTProtoAbridged struct {
21
-	conn StreamReadWriteCloser
22
-	opts *mtproto.ConnectionOpts
22
+	conn   StreamReadWriteCloser
23
+	opts   *mtproto.ConnectionOpts
24
+	logger *zap.SugaredLogger
23
 
25
 
24
 	readCounter  uint32
26
 	readCounter  uint32
25
 	writeCounter uint32
27
 	writeCounter uint32
26
 }
28
 }
27
 
29
 
28
 func (m *MTProtoAbridged) Read() ([]byte, error) {
30
 func (m *MTProtoAbridged) Read() ([]byte, error) {
29
-	m.LogDebug("Read packet",
31
+	m.logger.Debugw("Read packet",
30
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
32
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
31
 		"quick_ack", m.opts.ReadHacks.QuickAck,
33
 		"quick_ack", m.opts.ReadHacks.QuickAck,
32
 		"counter", m.readCounter,
34
 		"counter", m.readCounter,
41
 	msgLength := uint8(buf.Bytes()[0])
43
 	msgLength := uint8(buf.Bytes()[0])
42
 	buf.Reset()
44
 	buf.Reset()
43
 
45
 
44
-	m.LogDebug("Packet first byte",
46
+	m.logger.Debugw("Packet first byte",
45
 		"byte", msgLength,
47
 		"byte", msgLength,
46
 		"counter", m.readCounter,
48
 		"counter", m.readCounter,
47
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
49
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
64
 	}
66
 	}
65
 	msgLength32 *= 4
67
 	msgLength32 *= 4
66
 
68
 
67
-	m.LogDebug("Packet length",
69
+	m.logger.Debugw("Packet length",
68
 		"length", msgLength32,
70
 		"length", msgLength32,
69
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
71
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
70
 		"quick_ack", m.opts.ReadHacks.QuickAck,
72
 		"quick_ack", m.opts.ReadHacks.QuickAck,
83
 }
85
 }
84
 
86
 
85
 func (m *MTProtoAbridged) Write(p []byte) (int, error) {
87
 func (m *MTProtoAbridged) Write(p []byte) (int, error) {
86
-	m.LogDebug("Write packet",
88
+	m.logger.Debugw("Write packet",
87
 		"length", len(p),
89
 		"length", len(p),
88
 		"simple_ack", m.opts.WriteHacks.SimpleAck,
90
 		"simple_ack", m.opts.WriteHacks.SimpleAck,
89
 		"quick_ack", m.opts.WriteHacks.QuickAck,
91
 		"quick_ack", m.opts.WriteHacks.QuickAck,
124
 	return 0, errors.Errorf("Packet is too big %d", len(p))
126
 	return 0, errors.Errorf("Packet is too big %d", len(p))
125
 }
127
 }
126
 
128
 
127
-func (m *MTProtoAbridged) LogDebug(msg string, data ...interface{}) {
128
-	data = append(data, []interface{}{"type", "abridged"}...)
129
-	m.conn.LogDebug(msg, data...)
130
-}
131
-
132
-func (m *MTProtoAbridged) LogInfo(msg string, data ...interface{}) {
133
-	data = append(data, []interface{}{"type", "abridged"}...)
134
-	m.conn.LogInfo(msg, data...)
135
-}
136
-
137
-func (m *MTProtoAbridged) LogWarn(msg string, data ...interface{}) {
138
-	data = append(data, []interface{}{"type", "abridged"}...)
139
-	m.conn.LogWarn(msg, data...)
140
-}
141
-
142
-func (m *MTProtoAbridged) LogError(msg string, data ...interface{}) {
143
-	data = append(data, []interface{}{"type", "abridged"}...)
144
-	m.conn.LogError(msg, data...)
129
+func (m *MTProtoAbridged) Logger() *zap.SugaredLogger {
130
+	return m.logger
145
 }
131
 }
146
 
132
 
147
 func (m *MTProtoAbridged) LocalAddr() *net.TCPAddr {
133
 func (m *MTProtoAbridged) LocalAddr() *net.TCPAddr {
158
 
144
 
159
 func NewMTProtoAbridged(conn StreamReadWriteCloser, opts *mtproto.ConnectionOpts) PacketReadWriteCloser {
145
 func NewMTProtoAbridged(conn StreamReadWriteCloser, opts *mtproto.ConnectionOpts) PacketReadWriteCloser {
160
 	return &MTProtoAbridged{
146
 	return &MTProtoAbridged{
161
-		conn: conn,
162
-		opts: opts,
147
+		conn:   conn,
148
+		opts:   opts,
149
+		logger: conn.Logger().Named("mtproto-abridged"),
163
 	}
150
 	}
164
 }
151
 }

+ 10
- 22
wrappers/mtproto_frame.go View File

10
 	"net"
10
 	"net"
11
 
11
 
12
 	"github.com/juju/errors"
12
 	"github.com/juju/errors"
13
+	"go.uber.org/zap"
13
 )
14
 )
14
 
15
 
15
 const (
16
 const (
20
 var mtprotoFramePadding = []byte{0x04, 0x00, 0x00, 0x00}
21
 var mtprotoFramePadding = []byte{0x04, 0x00, 0x00, 0x00}
21
 
22
 
22
 type MTProtoFrame struct {
23
 type MTProtoFrame struct {
23
-	conn       StreamReadWriteCloser
24
+	conn   StreamReadWriteCloser
25
+	logger *zap.SugaredLogger
26
+
24
 	readSeqNo  int32
27
 	readSeqNo  int32
25
 	writeSeqNo int32
28
 	writeSeqNo int32
26
 }
29
 }
42
 	}
45
 	}
43
 
46
 
44
 	messageLength := binary.LittleEndian.Uint32(buf.Bytes())
47
 	messageLength := binary.LittleEndian.Uint32(buf.Bytes())
45
-	m.LogDebug("Read MTProto frame",
48
+	m.logger.Debugw("Read MTProto frame",
46
 		"messageLength", messageLength,
49
 		"messageLength", messageLength,
47
 		"sequence_number", m.readSeqNo,
50
 		"sequence_number", m.readSeqNo,
48
 	)
51
 	)
75
 		return nil, errors.Errorf("CRC32 checksum mismatch. Wait for %d, got %d", sum.Sum32(), checksum)
78
 		return nil, errors.Errorf("CRC32 checksum mismatch. Wait for %d, got %d", sum.Sum32(), checksum)
76
 	}
79
 	}
77
 
80
 
78
-	m.LogDebug("Read MTProto frame",
81
+	m.logger.Debugw("Read MTProto frame",
79
 		"messageLength", messageLength,
82
 		"messageLength", messageLength,
80
 		"sequence_number", m.readSeqNo,
83
 		"sequence_number", m.readSeqNo,
81
 		"dataLength", len(data),
84
 		"dataLength", len(data),
101
 	binary.Write(buf, binary.LittleEndian, checksum)
104
 	binary.Write(buf, binary.LittleEndian, checksum)
102
 	buf.Write(bytes.Repeat(mtprotoFramePadding, paddingLength/4))
105
 	buf.Write(bytes.Repeat(mtprotoFramePadding, paddingLength/4))
103
 
106
 
104
-	m.LogDebug("Write MTProto frame",
107
+	m.logger.Debugw("Write MTProto frame",
105
 		"length", len(p),
108
 		"length", len(p),
106
 		"sequence_number", m.writeSeqNo,
109
 		"sequence_number", m.writeSeqNo,
107
 		"crc32", checksum,
110
 		"crc32", checksum,
114
 	return len(p), err
117
 	return len(p), err
115
 }
118
 }
116
 
119
 
117
-func (m *MTProtoFrame) LogDebug(msg string, data ...interface{}) {
118
-	data = append(data, []interface{}{"type", "frame"}...)
119
-	m.conn.LogDebug(msg, data...)
120
-}
121
-
122
-func (m *MTProtoFrame) LogInfo(msg string, data ...interface{}) {
123
-	data = append(data, []interface{}{"type", "frame"}...)
124
-	m.conn.LogInfo(msg, data...)
125
-}
126
-
127
-func (m *MTProtoFrame) LogWarn(msg string, data ...interface{}) {
128
-	data = append(data, []interface{}{"type", "frame"}...)
129
-	m.conn.LogWarn(msg, data...)
130
-}
131
-
132
-func (m *MTProtoFrame) LogError(msg string, data ...interface{}) {
133
-	data = append(data, []interface{}{"type", "frame"}...)
134
-	m.conn.LogError(msg, data...)
120
+func (m *MTProtoFrame) Logger() *zap.SugaredLogger {
121
+	return m.logger
135
 }
122
 }
136
 
123
 
137
 func (m *MTProtoFrame) LocalAddr() *net.TCPAddr {
124
 func (m *MTProtoFrame) LocalAddr() *net.TCPAddr {
149
 func NewMTProtoFrame(conn StreamReadWriteCloser, seqNo int32) PacketReadWriteCloser {
136
 func NewMTProtoFrame(conn StreamReadWriteCloser, seqNo int32) PacketReadWriteCloser {
150
 	return &MTProtoFrame{
137
 	return &MTProtoFrame{
151
 		conn:       conn,
138
 		conn:       conn,
139
+		logger:     conn.Logger().Named("mtproto-frame"),
152
 		readSeqNo:  seqNo,
140
 		readSeqNo:  seqNo,
153
 		writeSeqNo: seqNo,
141
 		writeSeqNo: seqNo,
154
 	}
142
 	}

+ 14
- 26
wrappers/mtproto_intermediate.go View File

6
 	"io"
6
 	"io"
7
 	"net"
7
 	"net"
8
 
8
 
9
-	"github.com/9seconds/mtg/mtproto"
10
 	"github.com/juju/errors"
9
 	"github.com/juju/errors"
10
+	"go.uber.org/zap"
11
+
12
+	"github.com/9seconds/mtg/mtproto"
11
 )
13
 )
12
 
14
 
13
 const mtprotoIntermediateQuickAckLength = 0x80000000
15
 const mtprotoIntermediateQuickAckLength = 0x80000000
14
 
16
 
15
 type MTProtoIntermediate struct {
17
 type MTProtoIntermediate struct {
16
-	conn StreamReadWriteCloser
17
-	opts *mtproto.ConnectionOpts
18
+	conn   StreamReadWriteCloser
19
+	opts   *mtproto.ConnectionOpts
20
+	logger *zap.SugaredLogger
18
 
21
 
19
 	readCounter  uint32
22
 	readCounter  uint32
20
 	writeCounter uint32
23
 	writeCounter uint32
21
 }
24
 }
22
 
25
 
23
 func (m *MTProtoIntermediate) Read() ([]byte, error) {
26
 func (m *MTProtoIntermediate) Read() ([]byte, error) {
24
-	m.LogDebug("Read packet",
27
+	m.logger.Debugw("Read packet",
25
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
28
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
26
 		"quick_ack", m.opts.ReadHacks.QuickAck,
29
 		"quick_ack", m.opts.ReadHacks.QuickAck,
27
 		"counter", m.readCounter,
30
 		"counter", m.readCounter,
35
 	}
38
 	}
36
 	length := binary.LittleEndian.Uint32(buf.Bytes())
39
 	length := binary.LittleEndian.Uint32(buf.Bytes())
37
 
40
 
38
-	m.LogDebug("Packet message length",
41
+	m.logger.Debugw("Packet message length",
39
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
42
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
40
 		"quick_ack", m.opts.ReadHacks.QuickAck,
43
 		"quick_ack", m.opts.ReadHacks.QuickAck,
41
 		"counter", m.readCounter,
44
 		"counter", m.readCounter,
62
 }
65
 }
63
 
66
 
64
 func (m *MTProtoIntermediate) Write(p []byte) (int, error) {
67
 func (m *MTProtoIntermediate) Write(p []byte) (int, error) {
65
-	m.LogDebug("Write packet",
68
+	m.logger.Debugw("Write packet",
66
 		"simple_ack", m.opts.WriteHacks.SimpleAck,
69
 		"simple_ack", m.opts.WriteHacks.SimpleAck,
67
 		"quick_ack", m.opts.WriteHacks.QuickAck,
70
 		"quick_ack", m.opts.WriteHacks.QuickAck,
68
 		"counter", m.writeCounter,
71
 		"counter", m.writeCounter,
79
 	return m.conn.Write(append(length[:], p...))
82
 	return m.conn.Write(append(length[:], p...))
80
 }
83
 }
81
 
84
 
82
-func (m *MTProtoIntermediate) LogDebug(msg string, data ...interface{}) {
83
-	data = append(data, []interface{}{"type", "intermediate"}...)
84
-	m.conn.LogDebug(msg, data...)
85
-}
86
-
87
-func (m *MTProtoIntermediate) LogInfo(msg string, data ...interface{}) {
88
-	data = append(data, []interface{}{"type", "intermediate"}...)
89
-	m.conn.LogInfo(msg, data...)
90
-}
91
-
92
-func (m *MTProtoIntermediate) LogWarn(msg string, data ...interface{}) {
93
-	data = append(data, []interface{}{"type", "intermediate"}...)
94
-	m.conn.LogWarn(msg, data...)
95
-}
96
-
97
-func (m *MTProtoIntermediate) LogError(msg string, data ...interface{}) {
98
-	data = append(data, []interface{}{"type", "intermediate"}...)
99
-	m.conn.LogError(msg, data...)
85
+func (m *MTProtoIntermediate) Logger() *zap.SugaredLogger {
86
+	return m.logger
100
 }
87
 }
101
 
88
 
102
 func (m *MTProtoIntermediate) LocalAddr() *net.TCPAddr {
89
 func (m *MTProtoIntermediate) LocalAddr() *net.TCPAddr {
113
 
100
 
114
 func NewMTProtoIntermediate(conn StreamReadWriteCloser, opts *mtproto.ConnectionOpts) PacketReadWriteCloser {
101
 func NewMTProtoIntermediate(conn StreamReadWriteCloser, opts *mtproto.ConnectionOpts) PacketReadWriteCloser {
115
 	return &MTProtoIntermediate{
102
 	return &MTProtoIntermediate{
116
-		conn: conn,
117
-		opts: opts,
103
+		conn:   conn,
104
+		logger: conn.Logger().Named("mtproto-intermediate"),
105
+		opts:   opts,
118
 	}
106
 	}
119
 }
107
 }

+ 13
- 26
wrappers/mtproto_proxy.go View File

5
 	"net"
5
 	"net"
6
 
6
 
7
 	"github.com/juju/errors"
7
 	"github.com/juju/errors"
8
+	"go.uber.org/zap"
8
 
9
 
9
 	"github.com/9seconds/mtg/mtproto"
10
 	"github.com/9seconds/mtg/mtproto"
10
 	"github.com/9seconds/mtg/mtproto/rpc"
11
 	"github.com/9seconds/mtg/mtproto/rpc"
11
 )
12
 )
12
 
13
 
13
 type MTProtoProxy struct {
14
 type MTProtoProxy struct {
14
-	conn PacketReadWriteCloser
15
-	req  *rpc.ProxyRequest
15
+	conn   PacketReadWriteCloser
16
+	req    *rpc.ProxyRequest
17
+	logger *zap.SugaredLogger
16
 
18
 
17
 	readCounter  uint32
19
 	readCounter  uint32
18
 	writeCounter uint32
20
 	writeCounter uint32
19
 }
21
 }
20
 
22
 
21
 func (m *MTProtoProxy) Read() ([]byte, error) {
23
 func (m *MTProtoProxy) Read() ([]byte, error) {
22
-	m.LogDebug("Read packet",
24
+	m.logger.Debugw("Read packet",
23
 		"counter", m.readCounter,
25
 		"counter", m.readCounter,
24
 		"simple_ack", m.req.Options.WriteHacks.SimpleAck,
26
 		"simple_ack", m.req.Options.WriteHacks.SimpleAck,
25
 		"quick_ack", m.req.Options.WriteHacks.QuickAck,
27
 		"quick_ack", m.req.Options.WriteHacks.QuickAck,
29
 	if err != nil {
31
 	if err != nil {
30
 		return nil, errors.Annotate(err, "Cannot read packet")
32
 		return nil, errors.Annotate(err, "Cannot read packet")
31
 	}
33
 	}
32
-	m.LogDebug("Read packet length",
34
+	m.logger.Debugw("Read packet length",
33
 		"counter", m.readCounter,
35
 		"counter", m.readCounter,
34
 		"simple_ack", m.req.Options.WriteHacks.SimpleAck,
36
 		"simple_ack", m.req.Options.WriteHacks.SimpleAck,
35
 		"quick_ack", m.req.Options.WriteHacks.QuickAck,
37
 		"quick_ack", m.req.Options.WriteHacks.QuickAck,
41
 	}
43
 	}
42
 
44
 
43
 	tag, packet := packet[:4], packet[4:]
45
 	tag, packet := packet[:4], packet[4:]
44
-	m.LogDebug("Read RPC tag",
46
+	m.logger.Debugw("Read RPC tag",
45
 		"counter", m.readCounter,
47
 		"counter", m.readCounter,
46
 		"simple_ack", m.req.Options.WriteHacks.SimpleAck,
48
 		"simple_ack", m.req.Options.WriteHacks.SimpleAck,
47
 		"quick_ack", m.req.Options.WriteHacks.QuickAck,
49
 		"quick_ack", m.req.Options.WriteHacks.QuickAck,
82
 }
84
 }
83
 
85
 
84
 func (m *MTProtoProxy) Write(p []byte) (int, error) {
86
 func (m *MTProtoProxy) Write(p []byte) (int, error) {
85
-	m.LogDebug("Write packet",
87
+	m.logger.Debugw("Write packet",
86
 		"length", len(p),
88
 		"length", len(p),
87
 		"counter", m.writeCounter,
89
 		"counter", m.writeCounter,
88
 		"simple_ack", m.req.Options.ReadHacks.SimpleAck,
90
 		"simple_ack", m.req.Options.ReadHacks.SimpleAck,
97
 	return len(p), nil
99
 	return len(p), nil
98
 }
100
 }
99
 
101
 
100
-func (m *MTProtoProxy) LogDebug(msg string, data ...interface{}) {
101
-	data = append(data, []interface{}{"type", "proxy"}...)
102
-	m.conn.LogDebug(msg, data...)
103
-}
104
-
105
-func (m *MTProtoProxy) LogInfo(msg string, data ...interface{}) {
106
-	data = append(data, []interface{}{"type", "proxy"}...)
107
-	m.conn.LogInfo(msg, data...)
108
-}
109
-
110
-func (m *MTProtoProxy) LogWarn(msg string, data ...interface{}) {
111
-	data = append(data, []interface{}{"type", "proxy"}...)
112
-	m.conn.LogWarn(msg, data...)
113
-}
114
-
115
-func (m *MTProtoProxy) LogError(msg string, data ...interface{}) {
116
-	data = append(data, []interface{}{"type", "proxy"}...)
117
-	m.conn.LogError(msg, data...)
102
+func (m *MTProtoProxy) Logger() *zap.SugaredLogger {
103
+	return m.logger
118
 }
104
 }
119
 
105
 
120
 func (m *MTProtoProxy) LocalAddr() *net.TCPAddr {
106
 func (m *MTProtoProxy) LocalAddr() *net.TCPAddr {
136
 	}
122
 	}
137
 
123
 
138
 	return &MTProtoProxy{
124
 	return &MTProtoProxy{
139
-		conn: conn,
140
-		req:  req,
125
+		conn:   conn,
126
+		logger: conn.Logger().Named("mtproto-proxy"),
127
+		req:    req,
141
 	}, nil
128
 	}, nil
142
 }
129
 }

+ 5
- 14
wrappers/streamcipher.go View File

5
 	"net"
5
 	"net"
6
 
6
 
7
 	"github.com/juju/errors"
7
 	"github.com/juju/errors"
8
+	"go.uber.org/zap"
8
 )
9
 )
9
 
10
 
10
 type StreamCipher struct {
11
 type StreamCipher struct {
11
 	encryptor cipher.Stream
12
 	encryptor cipher.Stream
12
 	decryptor cipher.Stream
13
 	decryptor cipher.Stream
13
 	conn      StreamReadWriteCloser
14
 	conn      StreamReadWriteCloser
15
+	logger    *zap.SugaredLogger
14
 }
16
 }
15
 
17
 
16
 func (s *StreamCipher) Read(p []byte) (int, error) {
18
 func (s *StreamCipher) Read(p []byte) (int, error) {
30
 	return s.conn.Write(encrypted)
32
 	return s.conn.Write(encrypted)
31
 }
33
 }
32
 
34
 
33
-func (s *StreamCipher) LogDebug(msg string, data ...interface{}) {
34
-	s.conn.LogDebug(msg, data...)
35
-}
36
-
37
-func (s *StreamCipher) LogInfo(msg string, data ...interface{}) {
38
-	s.conn.LogInfo(msg, data...)
39
-}
40
-
41
-func (s *StreamCipher) LogWarn(msg string, data ...interface{}) {
42
-	s.conn.LogWarn(msg, data...)
43
-}
44
-
45
-func (s *StreamCipher) LogError(msg string, data ...interface{}) {
46
-	s.conn.LogError(msg, data...)
35
+func (s *StreamCipher) Logger() *zap.SugaredLogger {
36
+	return s.logger
47
 }
37
 }
48
 
38
 
49
 func (s *StreamCipher) LocalAddr() *net.TCPAddr {
39
 func (s *StreamCipher) LocalAddr() *net.TCPAddr {
61
 func NewStreamCipher(conn StreamReadWriteCloser, encryptor, decryptor cipher.Stream) StreamReadWriteCloser {
51
 func NewStreamCipher(conn StreamReadWriteCloser, encryptor, decryptor cipher.Stream) StreamReadWriteCloser {
62
 	return &StreamCipher{
52
 	return &StreamCipher{
63
 		conn:      conn,
53
 		conn:      conn,
54
+		logger:    conn.Logger().Named("stream-cipher"),
64
 		encryptor: encryptor,
55
 		encryptor: encryptor,
65
 		decryptor: decryptor,
56
 		decryptor: decryptor,
66
 	}
57
 	}

+ 3
- 5
wrappers/wrap.go View File

3
 import (
3
 import (
4
 	"io"
4
 	"io"
5
 	"net"
5
 	"net"
6
+
7
+	"go.uber.org/zap"
6
 )
8
 )
7
 
9
 
8
 type Wrap interface {
10
 type Wrap interface {
9
-	LogDebug(msg string, data ...interface{})
10
-	LogInfo(msg string, data ...interface{})
11
-	LogWarn(msg string, data ...interface{})
12
-	LogError(msg string, data ...interface{})
13
-
11
+	Logger() *zap.SugaredLogger
14
 	LocalAddr() *net.TCPAddr
12
 	LocalAddr() *net.TCPAddr
15
 	RemoteAddr() *net.TCPAddr
13
 	RemoteAddr() *net.TCPAddr
16
 }
14
 }

Loading…
Cancel
Save