Skip to content

Commit 225f0ae

Browse files
committed
feat: level log by replacing stl log with logrus
1 parent eabf9fb commit 225f0ae

7 files changed

+51
-39
lines changed

evnet.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
package evnet
22

33
import (
4-
"log"
4+
log "github.com/sirupsen/logrus"
5+
56
"os"
67
"strings"
78
)
89

9-
func Run(eventHandler EventHandler, protoAddr string, optList ...Option) {
10+
func Run(eventHandler EventHandler, protoAddr string, optList ...SetOption) {
1011
opts := loadOptions(optList)
1112
if opts.LogPath != "" {
1213
outputFile, err := os.OpenFile(opts.LogPath, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0777)
1314
if err != nil {
14-
log.Println("log file open error")
15+
log.Error("log file open error")
1516
}
1617
log.SetOutput(outputFile)
1718
}
18-
log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
19-
log.Println("log test")
19+
// log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
2020
//options working
2121
network, address := parseProtoAddr(protoAddr)
2222

evnet_handler.go

+8-7
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ package evnet
22

33
import (
44
"errors"
5-
"log"
5+
6+
log "github.com/sirupsen/logrus"
67
)
78

89
type EventHandler interface {
@@ -26,31 +27,31 @@ type BuiltinEventHandler struct {
2627
}
2728

2829
func (builtinEventHandler BuiltinEventHandler) OnConn(c Conn) error {
29-
log.Println("OnConn triggered ", c.Fd())
30+
log.Info("OnConn triggered ", c.Fd())
3031
return nil
3132
}
3233

3334
func (builtinEventHandler BuiltinEventHandler) OnClose(c Conn) error {
34-
log.Println("OnClose triggered ", c.Fd())
35+
log.Info("OnClose triggered ", c.Fd())
3536
return nil
3637
}
3738

3839
func (builtinEventHandler BuiltinEventHandler) OnTraffic(c Conn) error {
39-
log.Println("OnClose triggered ", c.Fd())
40+
log.Debug("OnClose triggered ", c.Fd())
4041
return nil
4142
}
4243

4344
func (builtinEventHandler BuiltinEventHandler) OnOpen(c Conn) error {
44-
log.Fatalln("OnOpen triggered ", c.Fd())
45+
log.Info("OnOpen triggered ", c.Fd())
4546
return nil
4647
}
4748

4849
func (builtinEventHandler BuiltinEventHandler) OnShutdown(mr *MainReactor) error {
49-
log.Fatalln("OnShutdown triggered ")
50+
log.Info("OnShutdown triggered ")
5051
return nil
5152
}
5253

5354
func (builtinEventHandler BuiltinEventHandler) OnBoot(mr *MainReactor) error {
54-
log.Fatalln("OnBoot triggered ")
55+
log.Info("OnBoot triggered ")
5556
return nil
5657
}

evnet_test.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ package evnet
22

33
import (
44
"errors"
5-
"log"
65
"math/rand"
76
"net"
87
"reflect"
98
"testing"
109

10+
log "github.com/sirupsen/logrus"
11+
1112
. "github.com/bruce2233/evnet/socket"
1213

1314
"golang.org/x/sys/unix"
@@ -25,15 +26,15 @@ type MyHandler struct {
2526
BuiltinEventHandler
2627
}
2728

28-
func (mh MyHandler) OnTraffic(c Conn) error{
29+
func (mh MyHandler) OnTraffic(c Conn) error {
2930
p, _ := c.Next(-1)
3031
c.Write(p)
31-
log.Println("receive", len(p))
32+
log.Debug("receive", len(p))
3233
return nil
3334
}
3435

35-
func (mh MyHandler) OnClose(c Conn) error{
36-
log.Println("On Close Trigger")
36+
func (mh MyHandler) OnClose(c Conn) error {
37+
log.Debug("On Close Trigger")
3738
return nil
3839
}
3940
func TestMainRec(t *testing.T) {

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.18
44

55
require (
66
github.com/evanphx/wildcat v0.0.0-20141114174135-e7012f664567
7+
github.com/sirupsen/logrus v1.9.0
78
github.com/zyedidia/generic v1.2.1
89
golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664
910
)

go.sum

+3
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@ github.com/evanphx/wildcat v0.0.0-20141114174135-e7012f664567 h1:7+oQw6YjB/kk9x2
55
github.com/evanphx/wildcat v0.0.0-20141114174135-e7012f664567/go.mod h1:XNGflD53X+hfdCAt1NGeBUgiUpe9QmweW/zI1gV26Zw=
66
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
77
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
8+
github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
9+
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
810
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
911
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
1012
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
1113
github.com/vektra/errors v0.0.0-20140903201135-c64d83aba85a h1:lUVfiMMY/te9icPKBqOKkBIMZNxSpM90dxokDeCcfBg=
1214
github.com/vektra/errors v0.0.0-20140903201135-c64d83aba85a/go.mod h1:KUxJS71XlMs+ztT+RzsLRoWUQRUpECo/+Rb0EBk8/Wc=
1315
github.com/zyedidia/generic v1.2.1 h1:Zv5KS/N2m0XZZiuLS82qheRG4X1o5gsWreGb0hR7XDc=
1416
github.com/zyedidia/generic v1.2.1/go.mod h1:ly2RBz4mnz1yeuVbQA/VFwGjK3mnHGRj1JuoG336Bis=
17+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1518
golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664 h1:v1W7bwXHsnLLloWYTVEdvGvA7BHMeBYsPcF0GLDxIRs=
1619
golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1720
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

http_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package evnet
22

33
import (
4-
"log"
54
"net/http"
65
"testing"
76
"time"
87

98
"github.com/evanphx/wildcat"
9+
log "github.com/sirupsen/logrus"
1010
)
1111

1212
type HttpServer struct {
@@ -19,8 +19,8 @@ type httpCodec struct {
1919
}
2020

2121
func (hs *HttpServer) OnBoot(mr *MainReactor) error {
22-
log.Println("\n=================Welcome!=================")
23-
log.Println("\n███████╗██╗░░░██╗███╗░░██╗███████╗████████╗\n██╔════╝██║░░░██║████╗░██║██╔════╝╚══██╔══╝\n█████╗░░╚██╗░██╔╝██╔██╗██║█████╗░░░░░██║░░░\n██╔══╝░░░╚████╔╝░██║╚████║██╔══╝░░░░░██║░░░\n███████╗░░╚██╔╝░░██║░╚███║███████╗░░░██║░░░\n╚══════╝░░░╚═╝░░░╚═╝░░╚══╝╚══════╝░░░╚═╝░░░")
22+
log.Info("\n=================Welcome!=================")
23+
log.Info("\n███████╗██╗░░░██╗███╗░░██╗███████╗████████╗\n██╔════╝██║░░░██║████╗░██║██╔════╝╚══██╔══╝\n█████╗░░╚██╗░██╔╝██╔██╗██║█████╗░░░░░██║░░░\n██╔══╝░░░╚████╔╝░██║╚████║██╔══╝░░░░░██║░░░\n███████╗░░╚██╔╝░░██║░╚███║███████╗░░░██║░░░\n╚══════╝░░░╚═╝░░░╚═╝░░╚══╝╚══════╝░░░╚═╝░░░")
2424
return nil
2525
}
2626

reactor.go

+25-19
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@ package evnet
1515

1616
import (
1717
"errors"
18-
"log"
1918
"math/rand"
2019
"net"
2120
"os"
2221
"runtime"
2322
"sync"
2423

24+
log "github.com/sirupsen/logrus"
25+
2526
. "github.com/bruce2233/evnet/socket"
2627

2728
"golang.org/x/sys/unix"
@@ -91,7 +92,7 @@ func (mr *MainReactor) Init(proto, addr string) error {
9192
return err
9293
}
9394
mr.poller = p
94-
log.Println("debug: init main poller: ", p)
95+
log.Debug("init main poller: ", p)
9596

9697
//init subReactor
9798
for i := 0; i < SubReactorsNum; i++ {
@@ -111,7 +112,7 @@ func (mr *MainReactor) Init(proto, addr string) error {
111112
listenerFd, _, err := TcpSocket(proto, addr, true)
112113
mr.listener.Fd = listenerFd
113114
if err != nil {
114-
log.Println("error: ", err)
115+
log.Error("error: ", err)
115116
}
116117

117118
//add listenerFd epoll
@@ -156,22 +157,22 @@ func setEventHandler(mr *MainReactor, eh EventHandler) {
156157

157158
func (mainReactor *MainReactor) Loop() {
158159

159-
log.Println("debug: ", "mainReactor create", "poller: ", mainReactor.poller, "linstenerFd is ", mainReactor.listener.Fd)
160+
log.Debug("mainReactor create", "poller: ", mainReactor.poller, "linstenerFd is ", mainReactor.listener.Fd)
160161

161162
for {
162-
log.Println("debug: ", "main reactor start polling")
163+
log.Debug("main reactor start polling")
163164
eventsList := mainReactor.poller.Polling()
164165
//working
165166
for _, v := range eventsList {
166167
nfd, raddr, err := AcceptSocket(int(v.Fd))
167-
// log.Println("debug: ", nfd, raddr.Network(), raddr.String())
168+
// log.Debug(nfd, raddr.Network(), raddr.String())
168169
os.NewSyscallError("AcceptSocket Err", err)
169170
//convert from nfd, tcpAddr to a socket
170171
// err = mainReactor.subReactors[0].poller.AddPollRead(int(v.Fd))
171172
idx := rand.Intn(2)
172173
laddr := mainReactor.listener.addr
173174
c, _ := NewConn(nfd, laddr, raddr)
174-
log.Println("debug: ", "mainReactor accept connection ", raddr, "to subReactor ", idx)
175+
log.Debug("mainReactor accept connection ", raddr, "to subReactor ", idx)
175176
sr := mainReactor.subReactors[idx]
176177
registerConn(sr, c)
177178
}
@@ -197,13 +198,13 @@ func (mr *MainReactor) stop() {
197198

198199
func (sr *SubReactor) Loop() error {
199200
for {
200-
log.Println("debug: ", "SubReactor start polling", sr.poller.Fd)
201+
log.Debug("SubReactor start polling", sr.poller.Fd)
201202
eventList := sr.poller.Polling()
202203
for _, event := range eventList {
203-
log.Println("debug: ", "events: ", event.Events)
204+
log.Debug("events: ", event.Events)
204205
if event.Events&OutEvents != 0 {
205206
c := sr.connections[int(event.Fd)]
206-
log.Println("debug: ", "subReactor OutEvents from: ", c.RemoteAddr())
207+
log.Debug("subReactor OutEvents from: ", c.RemoteAddr())
207208
sr.write(c)
208209
}
209210

@@ -243,7 +244,7 @@ func polling(epfd int) []unix.EpollEvent {
243244
var err error
244245
for {
245246
n, err = unix.EpollWait(epfd, eventsList, -1)
246-
log.Println("debug: ", "epoll trigger")
247+
log.Debug("epoll trigger")
247248
// if return EINTR, EpollWait again
248249
// debugging will trigger unix.EINTR error
249250
if n < 0 && err == unix.EINTR {
@@ -260,14 +261,14 @@ func polling(epfd int) []unix.EpollEvent {
260261

261262
func (sr *SubReactor) read(c *conn) error {
262263
n, err := unix.Read(c.Fd(), sr.buffer)
263-
log.Println("debug: ", "sr read n:", n)
264+
log.Debug("sr read n:", n)
264265
// log.Println("sr.buffer len():", len(sr.buffer))
265266
if n == 0 {
266267
sr.closeConn(c)
267268
}
268269
if err != nil {
269270
if err == unix.EAGAIN {
270-
log.Println("err: ", unix.EAGAIN)
271+
log.Warn(unix.EAGAIN)
271272
return unix.EAGAIN
272273
}
273274
return unix.ECONNRESET
@@ -276,13 +277,13 @@ func (sr *SubReactor) read(c *conn) error {
276277
err = (**sr.eventHandlerPP).OnTraffic(c)
277278
if err != nil {
278279
if err == ErrClose {
279-
log.Println("debug: ErrClose")
280+
log.Info(ErrClose)
280281
sr.closeConn(c)
281282
}
282-
if err.Error() == "Shutdown" {
283-
log.Println("debug: ErrShutdonw")
284-
return err
283+
if err == ErrShutdown {
284+
log.Info(ErrShutdown)
285285
}
286+
return err
286287
}
287288
return nil
288289
}
@@ -294,8 +295,13 @@ func (sr *SubReactor) write(c *conn) error {
294295

295296
n, err := unix.Write(c.Fd(), c.outboundBuffer)
296297
if err != nil {
297-
log.Println("error: ", "subReactor Write error")
298+
log.Warn("subReactor Write error")
299+
if n == -1 {
300+
log.Warn("subReactor try to write a closed conn")
301+
}
302+
sr.closeConn(c)
298303
}
304+
299305
if n == buffedLen {
300306
//the c.outbound data belongs to the peek of queue
301307
cur := c.asyncTaskQueue.Dequeue()
@@ -360,7 +366,7 @@ func AcceptSocket(fd int) (int, net.Addr, error) {
360366
case *unix.SockaddrInet4:
361367
sa4, ok := sa.(*unix.SockaddrInet4)
362368
if !ok {
363-
log.Println("sa4 asset error")
369+
log.Error("sa4 assertion error")
364370
}
365371
return nfd, &net.TCPAddr{IP: sa4.Addr[:], Port: sa4.Port}, err
366372
}

0 commit comments

Comments
 (0)