add zap logger

This commit is contained in:
zhiqiang feng
2020-12-28 15:58:00 +08:00
parent c06ec0a519
commit 0619229ec5
10 changed files with 82 additions and 49 deletions
+9 -9
View File
@@ -15,18 +15,18 @@ var (
stopbits byte
port *serial.Port
portOpened = false
Log *zap.SugaredLogger
Log *zap.Logger
)
const readDuration = 500 * time.Millisecond
// OpenPort open serial port
func OpenPort(device string, baudrate int, bytesize byte, stopbits byte) error {
Log.Infow("opening serial device ",
"port", device,
"baudrate", baudrate,
"bytesize", bytesize,
"stopbits", stopbits)
Log.Info("opening serial device ",
zap.String("port", device),
zap.Int("baudrate", baudrate),
zap.Int("bytesize", int(bytesize)),
zap.Int("stopbits", int(stopbits)))
config := &serial.Config{Name: device,
Baud: baudrate,
Size: bytesize,
@@ -35,10 +35,10 @@ func OpenPort(device string, baudrate int, bytesize byte, stopbits byte) error {
var err error
port, err = serial.OpenPort(config)
if err != nil {
Log.Fatal("error in open serial port ", err)
Log.Fatal("error in open serial port ", zap.Error(err))
return err
}
Log.Infof("%s opened", device)
Log.Info("opened ", zap.String("port", device))
portOpened = true
return nil
}
@@ -51,7 +51,7 @@ func ReadPort() ([]byte, int) {
}
count, err := port.Read(buffer)
if err != nil && err != io.EOF {
Log.Error("error in read port ", err)
Log.Error("error in read port ", zap.Error(err))
//TODO: 3 time fail try to
}
return buffer, count
+8 -6
View File
@@ -4,6 +4,8 @@ import (
"io"
"net"
"time"
"go.uber.org/zap"
)
const ServerType = "tcp"
@@ -17,20 +19,20 @@ func Listen(address string) {
var err error
server, err = net.Listen(ServerType, address)
if err != nil {
Log.Fatal("error in create server ", err)
Log.Fatal("error in create server ", zap.Error(err))
}
defer server.Close()
Log.Infof("listen on %s", address)
Log.Info("listen on ", zap.String("address", address))
for ServerRunning {
conn, err := server.Accept()
if err != nil {
ServerRunning = false
Log.Error("error in create connection ", err)
Log.Error("error in create connection ", zap.Error(err))
}
if client == nil {
client = conn
ClientReady = false
Log.Infof("client %s connected ", client.RemoteAddr())
Log.Info("client connected on ", zap.Any("address", client.RemoteAddr()))
LoadUnprocessed()
} else {
Log.Info("client already connected, close")
@@ -48,7 +50,7 @@ func Listen(address string) {
func WriteToClient(data string) error {
_, err := client.Write([]byte(data + "\r\n"))
if err != nil {
Log.Error("error in write data to client socket ", err)
Log.Error("error in write data to client socket ", zap.Error(err))
closeClient()
}
return err
@@ -58,7 +60,7 @@ func connCheck() bool {
_, err := client.Read(make([]byte, 0))
if err != nil && err != io.EOF {
// this connection is invalid
Log.Error("conn closed....", err)
Log.Error("conn closed....", zap.Error(err))
client = nil
return false
}
+10 -9
View File
@@ -6,6 +6,7 @@ import (
"time"
_ "github.com/mattn/go-sqlite3"
"go.uber.org/zap"
)
const (
@@ -41,12 +42,12 @@ var (
func getDb() *sql.DB {
//log.Println("init database ", initTable)
if initTable && !initialized {
Log.Info("remove database file ", dbFile)
Log.Info("remove database ", zap.String("file", dbFile))
os.Remove(dbFile)
}
db, err := sql.Open(DbDriver, dbFile)
if err != nil {
Log.Fatal("error in open database ", err)
Log.Fatal("error in open database ", zap.Error(err))
}
return db
}
@@ -59,7 +60,7 @@ func InitDb(file string, init bool) error {
defer db.Close()
_, dbErr = db.Exec(TableCreate)
checkDbErr(dbErr, "error in create table")
Log.Infof("database %s initialized", dbFile)
Log.Info("database initialized")
initialized = true
return nil
}
@@ -82,9 +83,9 @@ func InsertTelegram(teleString string) {
checkDbErr(err, "error in insert telegram ")
isWriting = false
if insertSQL == InsertOld {
Log.Infof("telegram [%d] processed ", id)
Log.Info("telegram processed ", zap.Int64("id", id))
} else {
Log.Infof("telegram [%d] saved ", id)
Log.Info("telegram saved ", zap.Int64("id", id))
}
}
@@ -110,7 +111,7 @@ func LoadUnprocessed() {
func getTelegram(db *sql.DB) []telegram {
var telegrams []telegram
num := countTelegram()
Log.Infof("%n telegram unprocessed ", num)
Log.Info("telegram ", zap.Int64("unprocessed", num))
if num < 1 {
return telegrams
}
@@ -137,7 +138,7 @@ func processed(db *sql.DB, t telegram) {
result, err := stmt.Exec(t.id)
checkDbErr(err, "error in update telegram status")
id, _ := result.RowsAffected()
Log.Infof("[%d] telegram update : %t", id, id > 0)
Log.Info("telegram update : %t", zap.Int64("id", id), zap.Bool("result", id > 0))
isWriting = false
Log.Info("release lock")
tx.Commit()
@@ -156,7 +157,7 @@ func countTelegram() int64 {
func getWriteLock() {
count := 0
Log.Debugf("write lock : %t", isWriting)
Log.Debug("with ", zap.Bool("lock", isWriting))
for isWriting && count < 10 {
Log.Info("waiting for write ")
time.Sleep(5 * time.Second)
@@ -170,6 +171,6 @@ func getWriteLock() {
func checkDbErr(err error, msg string) {
if err != nil {
Log.Fatal(msg, err)
Log.Fatal(msg, zap.Error(err))
}
}
+3 -1
View File
@@ -3,6 +3,8 @@ package utils
import (
"regexp"
"strings"
"go.uber.org/zap"
)
const (
@@ -27,7 +29,7 @@ func check() {
telegram := exp.FindString(string(buffer))
if len(telegram) > 0 {
Log.Infof("telegram : %s", telegram)
Log.Info("telegram ", zap.String("text", telegram))
buffer = nil
InsertTelegram(telegram)
}