升级日志系统

This commit is contained in:
dexter
2022-02-11 00:27:56 +08:00
parent f9d0567f45
commit 76f7e8ab8b
29 changed files with 4136 additions and 367 deletions

View File

@@ -3,7 +3,7 @@ package util
import (
"context"
"encoding/json"
"log"
log "github.com/sirupsen/logrus"
"net"
"net/http"
"time"
@@ -14,26 +14,41 @@ type TCPListener interface {
Process(*net.TCPConn)
}
func GetJsonHandler[T any](fetch func() T, tickDur time.Duration) http.HandlerFunc {
return func(rw http.ResponseWriter, r *http.Request) {
if r.URL.Query().Get("json") != "" {
if err := json.NewEncoder(rw).Encode(fetch()); err != nil {
rw.WriteHeader(500)
}
return
func ReturnJson[T any](fetch func() T, tickDur time.Duration, rw http.ResponseWriter, r *http.Request) {
if r.URL.Query().Get("json") != "" {
if err := json.NewEncoder(rw).Encode(fetch()); err != nil {
rw.WriteHeader(500)
}
sse := NewSSE(rw, r.Context())
tick := time.NewTicker(tickDur)
for range tick.C {
if sse.WriteJSON(fetch()) != nil {
tick.Stop()
break
}
return
}
sse := NewSSE(rw, r.Context())
tick := time.NewTicker(tickDur)
for range tick.C {
if sse.WriteJSON(fetch()) != nil {
tick.Stop()
break
}
}
}
// func GetJsonHandler[T any](fetch func() T, tickDur time.Duration) http.HandlerFunc {
// return func(rw http.ResponseWriter, r *http.Request) {
// if r.URL.Query().Get("json") != "" {
// if err := json.NewEncoder(rw).Encode(fetch()); err != nil {
// rw.WriteHeader(500)
// }
// return
// }
// sse := NewSSE(rw, r.Context())
// tick := time.NewTicker(tickDur)
// for range tick.C {
// if sse.WriteJSON(fetch()) != nil {
// tick.Stop()
// break
// }
// }
// }
// }
func ListenUDP(address string, networkBuffer int) (*net.UDPConn, error) {
addr, err := net.ResolveUDPAddr("udp", address)
@@ -45,10 +60,10 @@ func ListenUDP(address string, networkBuffer int) (*net.UDPConn, error) {
log.Fatalf("udp server ListenUDP :%s error, %v", address, err)
}
if err = conn.SetReadBuffer(networkBuffer); err != nil {
Printf("udp server video conn set read buffer error, %v", err)
log.Errorf("udp server video conn set read buffer error, %v", err)
}
if err = conn.SetWriteBuffer(networkBuffer); err != nil {
Printf("udp server video conn set write buffer error, %v", err)
log.Errorf("udp server video conn set write buffer error, %v", err)
}
return conn, err
}