mirror of
https://github.com/astaxie/beego.git
synced 2024-11-24 18:00:55 +00:00
Fix logger reconnection
This commit is contained in:
parent
d6ef33feee
commit
fc56c562db
@ -101,7 +101,6 @@ func (c *connWriter) connect() error {
|
|||||||
|
|
||||||
func (c *connWriter) needToConnectOnMsg() bool {
|
func (c *connWriter) needToConnectOnMsg() bool {
|
||||||
if c.Reconnect {
|
if c.Reconnect {
|
||||||
c.Reconnect = false
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,11 +15,65 @@
|
|||||||
package logs
|
package logs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"net"
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ConnTCPListener takes a TCP listener and accepts n TCP connections
|
||||||
|
// Returns connections using connChan
|
||||||
|
func connTCPListener(t *testing.T, n int, ln net.Listener, connChan chan<- net.Conn) {
|
||||||
|
|
||||||
|
// Listen and accept n incoming connections
|
||||||
|
for i := 0; i < n; i++ {
|
||||||
|
conn, err := ln.Accept()
|
||||||
|
if err != nil {
|
||||||
|
t.Log("Error accepting connection: ", err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send accepted connection to channel
|
||||||
|
connChan <- conn
|
||||||
|
}
|
||||||
|
ln.Close()
|
||||||
|
close(connChan)
|
||||||
|
}
|
||||||
|
|
||||||
func TestConn(t *testing.T) {
|
func TestConn(t *testing.T) {
|
||||||
log := NewLogger(1000)
|
log := NewLogger(1000)
|
||||||
log.SetLogger("conn", `{"net":"tcp","addr":":7020"}`)
|
log.SetLogger("conn", `{"net":"tcp","addr":":7020"}`)
|
||||||
log.Informational("informational")
|
log.Informational("informational")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestReconnect(t *testing.T) {
|
||||||
|
// Setup connection listener
|
||||||
|
newConns := make(chan net.Conn)
|
||||||
|
connNum := 2
|
||||||
|
ln, err := net.Listen("tcp", ":6002")
|
||||||
|
if err != nil {
|
||||||
|
t.Log("Error listening:", err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
go connTCPListener(t, connNum, ln, newConns)
|
||||||
|
|
||||||
|
// Setup logger
|
||||||
|
log := NewLogger(1000)
|
||||||
|
log.SetPrefix("test")
|
||||||
|
log.SetLogger(AdapterConn, `{"net":"tcp","reconnect":true,"level":6,"addr":":6002"}`)
|
||||||
|
log.Informational("informational 1")
|
||||||
|
|
||||||
|
// Refuse first connection
|
||||||
|
first := <-newConns
|
||||||
|
first.Close()
|
||||||
|
|
||||||
|
// Send another log after conn closed
|
||||||
|
log.Informational("informational 2")
|
||||||
|
|
||||||
|
// Check if there was a second connection attempt
|
||||||
|
select {
|
||||||
|
case second := <-newConns:
|
||||||
|
second.Close()
|
||||||
|
default:
|
||||||
|
t.Error("Did not reconnect")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user