Add logger
This commit is contained in:
parent
b5f950b41a
commit
e6f4d49523
6
go.mod
6
go.mod
|
@ -1,3 +1,9 @@
|
|||
module socket-server
|
||||
|
||||
go 1.19
|
||||
|
||||
require (
|
||||
go.uber.org/atomic v1.10.0 // indirect
|
||||
go.uber.org/multierr v1.8.0 // indirect
|
||||
go.uber.org/zap v1.23.0 // indirect
|
||||
)
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||
go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
|
||||
go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
|
||||
go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY=
|
||||
go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
@ -0,0 +1,10 @@
|
|||
package internal
|
||||
|
||||
import "go.uber.org/zap"
|
||||
|
||||
var Logger *zap.Logger
|
||||
|
||||
func init() {
|
||||
Logger = zap.NewExample()
|
||||
defer Logger.Sync()
|
||||
}
|
|
@ -3,6 +3,8 @@ package internal
|
|||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// HELO 信息格式,如:HELO
|
||||
|
@ -15,6 +17,7 @@ func ProcessHelo(msg string) (clients string) {
|
|||
clients += client.Addr + " "
|
||||
}
|
||||
clients += "\n"
|
||||
Logger.Info("Helo", zap.String("clients", clients))
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -37,6 +40,7 @@ func ProcessSend(msg string, from string) (reply string) {
|
|||
if client.Addr == addr {
|
||||
client.Messages <- message
|
||||
reply = "OK\n"
|
||||
Logger.Info("Send", zap.String("from", from), zap.String("to", addr), zap.String("content", content))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
@ -54,6 +58,7 @@ func ProcessPull(client Client) (reply string) {
|
|||
reply += "FROM " + msg.From + " CONTENT " + msg.Content + "\n"
|
||||
}
|
||||
reply += "END\n"
|
||||
Logger.Info("Pull", zap.String("client", client.Addr), zap.String("reply", reply))
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -68,5 +73,6 @@ func ProcessExit(client Client) (reply string) {
|
|||
}
|
||||
}
|
||||
reply = "OK\n"
|
||||
Logger.Info("Exit", zap.String("client", client.Addr))
|
||||
return
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@ package internal
|
|||
import (
|
||||
"log"
|
||||
"net"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func TCPHandler(conn net.Conn) {
|
||||
|
@ -10,6 +12,7 @@ func TCPHandler(conn net.Conn) {
|
|||
addr := conn.RemoteAddr().(*net.TCPAddr).IP.String()
|
||||
client := Client{Addr: addr, Conn: conn, Messages: make(chan Message, 100)}
|
||||
Clients = append(Clients, client)
|
||||
Logger.Info("New client", zap.String("addr", addr))
|
||||
|
||||
defer conn.Close()
|
||||
for {
|
||||
|
@ -19,7 +22,7 @@ func TCPHandler(conn net.Conn) {
|
|||
log.Default().Println(err)
|
||||
return
|
||||
}
|
||||
log.Default().Println(string(buf[:n]))
|
||||
Logger.Info("Received", zap.String("addr", addr), zap.String("msg", string(buf[:n])))
|
||||
var reply string
|
||||
switch msg := string(buf[:n]); {
|
||||
case Helo.MatchString(msg):
|
||||
|
|
6
main.go
6
main.go
|
@ -4,10 +4,13 @@ import (
|
|||
"log"
|
||||
"net"
|
||||
"socket-server/internal"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ln, err := net.Listen("tcp", ":65432")
|
||||
internal.Logger.Info("Listening on :65432")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
panic(err)
|
||||
|
@ -15,8 +18,7 @@ func main() {
|
|||
for {
|
||||
conn, err := ln.Accept()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
panic(err)
|
||||
internal.Logger.Fatal("Accept error", zap.Error(err))
|
||||
}
|
||||
go internal.TCPHandler(conn)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue