Add logger

This commit is contained in:
cyp0633 2022-11-24 22:35:07 +08:00
parent b5f950b41a
commit e6f4d49523
Signed by: cyp0633
GPG Key ID: CF90D09FB1FDCE45
6 changed files with 46 additions and 3 deletions

6
go.mod
View File

@ -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
)

16
go.sum Normal file
View File

@ -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=

10
internal/log.go Normal file
View File

@ -0,0 +1,10 @@
package internal
import "go.uber.org/zap"
var Logger *zap.Logger
func init() {
Logger = zap.NewExample()
defer Logger.Sync()
}

View File

@ -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
}

View File

@ -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):

View File

@ -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)
}