refactor: use zap as logger

This commit is contained in:
0xJacky 2023-05-06 21:09:22 +08:00
parent 2831208de3
commit f305701b30
No known key found for this signature in database
GPG key ID: B6E4A6E4A561BAF0
34 changed files with 327 additions and 175 deletions

View file

@ -2,6 +2,7 @@ package api
import (
"fmt"
"github.com/0xJacky/Nginx-UI/logger"
"github.com/0xJacky/Nginx-UI/server/internal/analytic"
"github.com/pkg/errors"
"github.com/shirou/gopsutil/v3/cpu"
@ -11,7 +12,6 @@ import (
"github.com/shirou/gopsutil/v3/mem"
"github.com/shirou/gopsutil/v3/net"
"github.com/spf13/cast"
"log"
"math"
"net/http"
"runtime"
@ -102,7 +102,7 @@ func Analytic(c *gin.Context) {
// upgrade http to websocket
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
log.Println("[Error] Analytic Upgrade", err)
logger.Error(err)
return
}
@ -114,7 +114,7 @@ func Analytic(c *gin.Context) {
stat.Memory, err = getMemoryStat()
if err != nil {
log.Println(err)
logger.Error(err)
return
}
@ -139,7 +139,7 @@ func Analytic(c *gin.Context) {
stat.Disk, err = getDiskStat()
if err != nil {
log.Println(err)
logger.Error(err)
return
}
@ -152,7 +152,7 @@ func Analytic(c *gin.Context) {
// write
err = ws.WriteJSON(stat)
if err != nil {
log.Println("[Error] analytic WriteJSON", err)
logger.Error(err)
break
}
time.Sleep(800 * time.Microsecond)
@ -166,14 +166,14 @@ func GetAnalyticInit(c *gin.Context) {
memory, err := getMemoryStat()
if err != nil {
log.Println(err)
logger.Error(err)
return
}
diskStat, err := getDiskStat()
if err != nil {
log.Println(err)
logger.Error(err)
return
}

View file

@ -1,68 +1,68 @@
package api
import (
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"github.com/go-playground/locales/zh"
ut "github.com/go-playground/universal-translator"
val "github.com/go-playground/validator/v10"
zhTranslations "github.com/go-playground/validator/v10/translations/zh"
"log"
"net/http"
"reflect"
"github.com/0xJacky/Nginx-UI/logger"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"github.com/go-playground/locales/zh"
ut "github.com/go-playground/universal-translator"
val "github.com/go-playground/validator/v10"
zhTranslations "github.com/go-playground/validator/v10/translations/zh"
"net/http"
"reflect"
)
func ErrHandler(c *gin.Context, err error) {
log.Println(err)
c.JSON(http.StatusInternalServerError, gin.H{
"message": err.Error(),
})
logger.GetLogger().Errorln(err)
c.JSON(http.StatusInternalServerError, gin.H{
"message": err.Error(),
})
}
type ValidError struct {
Key string
Message string
Key string
Message string
}
func BindAndValid(c *gin.Context, target interface{}) bool {
errs := make(map[string]string)
err := c.ShouldBindJSON(target)
if err != nil {
log.Println("raw err", err)
uni := ut.New(zh.New())
trans, _ := uni.GetTranslator("zh")
v, ok := binding.Validator.Engine().(*val.Validate)
if ok {
_ = zhTranslations.RegisterDefaultTranslations(v, trans)
}
errs := make(map[string]string)
err := c.ShouldBindJSON(target)
if err != nil {
logger.Error("bind err", err)
uni := ut.New(zh.New())
trans, _ := uni.GetTranslator("zh")
v, ok := binding.Validator.Engine().(*val.Validate)
if ok {
_ = zhTranslations.RegisterDefaultTranslations(v, trans)
}
verrs, ok := err.(val.ValidationErrors)
verrs, ok := err.(val.ValidationErrors)
if !ok {
log.Println("verrs", verrs)
c.JSON(http.StatusNotAcceptable, gin.H{
"message": "Requested with wrong parameters",
"code": http.StatusNotAcceptable,
"error": verrs,
})
return false
}
if !ok {
logger.Error("valid err", verrs)
c.JSON(http.StatusNotAcceptable, gin.H{
"message": "Requested with wrong parameters",
"code": http.StatusNotAcceptable,
"error": verrs,
})
return false
}
for _, value := range verrs {
t := reflect.ValueOf(target)
realType := t.Type().Elem()
field, _ := realType.FieldByName(value.StructField())
errs[field.Tag.Get("json")] = value.Translate(trans)
}
for _, value := range verrs {
t := reflect.ValueOf(target)
realType := t.Type().Elem()
field, _ := realType.FieldByName(value.StructField())
errs[field.Tag.Get("json")] = value.Translate(trans)
}
c.JSON(http.StatusNotAcceptable, gin.H{
"errors": errs,
"message": "Requested with wrong parameters",
"code": http.StatusNotAcceptable,
})
c.JSON(http.StatusNotAcceptable, gin.H{
"errors": errs,
"message": "Requested with wrong parameters",
"code": http.StatusNotAcceptable,
})
return false
}
return false
}
return true
return true
}

View file

@ -1,6 +1,7 @@
package api
import (
"github.com/0xJacky/Nginx-UI/logger"
"github.com/0xJacky/Nginx-UI/server/internal/cert"
"github.com/0xJacky/Nginx-UI/server/internal/cert/dns"
"github.com/0xJacky/Nginx-UI/server/internal/nginx"
@ -8,7 +9,6 @@ import (
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
"github.com/spf13/cast"
"log"
"net/http"
"os"
"path/filepath"
@ -31,7 +31,7 @@ type IssueCertResponse struct {
func handleIssueCertLogChan(conn *websocket.Conn, logChan chan string) {
defer func() {
if err := recover(); err != nil {
log.Println("api.handleIssueCertLogChan recover", err)
logger.Error(err)
}
}()
@ -43,7 +43,7 @@ func handleIssueCertLogChan(conn *websocket.Conn, logChan chan string) {
})
if err != nil {
log.Println("Error handleIssueCertLogChan", err)
logger.Error(err)
return
}
@ -60,15 +60,12 @@ func IssueCert(c *gin.Context) {
// upgrade http to websocket
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
log.Println(err)
logger.Error(err)
return
}
defer func(ws *websocket.Conn) {
err := ws.Close()
if err != nil {
log.Println("defer websocket close err", err)
}
_ = ws.Close()
}(ws)
// read
@ -77,14 +74,15 @@ func IssueCert(c *gin.Context) {
err = ws.ReadJSON(buffer)
if err != nil {
log.Println(err)
logger.Error(err)
return
}
certModel, err := model.FirstOrCreateCert(c.Param("name"))
if err != nil {
log.Println(err)
logger.Error(err)
return
}
logChan := make(chan string, 1)
@ -106,7 +104,7 @@ func IssueCert(c *gin.Context) {
})
if err != nil {
log.Println("Error WriteJSON", err)
logger.Error(err)
return
}
@ -124,7 +122,7 @@ func IssueCert(c *gin.Context) {
})
if err != nil {
log.Println(err)
logger.Error(err)
err = ws.WriteJSON(IssueCertResponse{
Status: Error,
Message: err.Error(),
@ -142,7 +140,7 @@ func IssueCert(c *gin.Context) {
})
if err != nil {
log.Println(err)
logger.Error(err)
return
}
@ -268,7 +266,6 @@ func AddCert(c *gin.Context) {
func ModifyCert(c *gin.Context) {
id := cast.ToInt(c.Param("id"))
certModel, err := model.FirstCertByID(id)
var json struct {
Name string `json:"name"`
@ -282,6 +279,7 @@ func ModifyCert(c *gin.Context) {
return
}
certModel, err := model.FirstCertByID(id)
if err != nil {
ErrHandler(c, err)
return

View file

@ -1,11 +1,11 @@
package api
import (
"github.com/0xJacky/Nginx-UI/logger"
"github.com/0xJacky/Nginx-UI/server/internal/config_list"
"github.com/0xJacky/Nginx-UI/server/internal/nginx"
"github.com/0xJacky/Nginx-UI/server/query"
"github.com/gin-gonic/gin"
"log"
"net/http"
"os"
)
@ -43,14 +43,14 @@ func GetConfigs(c *gin.Context) {
var targetPath string
targetPath, err = os.Readlink(nginx.GetConfPath(file.Name()))
if err != nil {
log.Println("GetConfigs Read Symlink Error", targetPath, err)
logger.Error("Read Symlink Error", targetPath, err)
continue
}
var targetInfo os.FileInfo
targetInfo, err = os.Stat(targetPath)
if err != nil {
log.Println("GetConfigs Stat Error", targetPath, err)
logger.Error("Stat Error", targetPath, err)
continue
}
// but target file is not a dir

View file

@ -1,6 +1,7 @@
package api
import (
"github.com/0xJacky/Nginx-UI/logger"
"github.com/0xJacky/Nginx-UI/server/internal/cert"
"github.com/0xJacky/Nginx-UI/server/internal/config_list"
"github.com/0xJacky/Nginx-UI/server/internal/helper"
@ -8,7 +9,6 @@ import (
"github.com/0xJacky/Nginx-UI/server/model"
"github.com/0xJacky/Nginx-UI/server/query"
"github.com/gin-gonic/gin"
"log"
"net/http"
"os"
"strings"
@ -148,7 +148,7 @@ func GetDomain(c *gin.Context) {
pubKey, err := cert.GetCertInfo(directive.Params)
if err != nil {
log.Println("Failed to get certificate information", err)
logger.Error("Failed to get certificate information", err)
break
}

View file

@ -2,6 +2,7 @@ package api
import (
"encoding/json"
"github.com/0xJacky/Nginx-UI/logger"
"github.com/0xJacky/Nginx-UI/server/internal/helper"
"github.com/0xJacky/Nginx-UI/server/internal/nginx"
"github.com/0xJacky/Nginx-UI/server/settings"
@ -11,7 +12,6 @@ import (
"github.com/pkg/errors"
"github.com/spf13/cast"
"io"
"log"
"net/http"
"os"
)
@ -46,7 +46,7 @@ func GetNginxLogPage(c *gin.Context) {
logPath, err := getLogPath(&control)
if err != nil {
log.Println("error GetNginxLogPage", err)
logger.Error(err)
return
}
@ -54,7 +54,7 @@ func GetNginxLogPage(c *gin.Context) {
if err != nil {
c.JSON(http.StatusOK, nginxLogPageResp{})
log.Println("error GetNginxLogPage open file", err)
logger.Error(err)
return
}
@ -62,7 +62,7 @@ func GetNginxLogPage(c *gin.Context) {
if err != nil {
c.JSON(http.StatusOK, nginxLogPageResp{})
log.Println("error GetNginxLogPage stat", err)
logger.Error(err)
return
}
@ -85,7 +85,7 @@ func GetNginxLogPage(c *gin.Context) {
_, err = f.Seek(offset, io.SeekStart)
if err != nil && err != io.EOF {
c.JSON(http.StatusOK, nginxLogPageResp{})
log.Println("error GetNginxLogPage seek", err)
logger.Error(err)
return
}
@ -93,7 +93,7 @@ func GetNginxLogPage(c *gin.Context) {
if err != nil && err != io.EOF {
c.JSON(http.StatusOK, nginxLogPageResp{})
log.Println("error GetNginxLogPage read buf", err)
logger.Error(err)
return
}
@ -163,7 +163,7 @@ func getLogPath(control *controlStruct) (logPath string, err error) {
func tailNginxLog(ws *websocket.Conn, controlChan chan controlStruct, errChan chan error) {
defer func() {
if err := recover(); err != nil {
log.Println("tailNginxLog recovery", err)
logger.Error(err)
return
}
}()
@ -226,7 +226,7 @@ func tailNginxLog(ws *websocket.Conn, controlChan chan controlStruct, errChan ch
func handleLogControl(ws *websocket.Conn, controlChan chan controlStruct, errChan chan error) {
defer func() {
if err := recover(); err != nil {
log.Println("handleLogControl recovery", err)
logger.Error(err)
return
}
}()
@ -262,7 +262,7 @@ func NginxLog(c *gin.Context) {
// upgrade http to websocket
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
log.Println("[Error] NginxLog Upgrade", err)
logger.Error(err)
return
}
@ -275,7 +275,7 @@ func NginxLog(c *gin.Context) {
go handleLogControl(ws, controlChan, errChan)
if err = <-errChan; err != nil {
log.Println(err)
logger.Error(err)
_ = ws.WriteMessage(websocket.TextMessage, []byte(err.Error()))
return
}

View file

@ -1,10 +1,10 @@
package api
import (
"github.com/0xJacky/Nginx-UI/logger"
"github.com/0xJacky/Nginx-UI/server/internal/pty"
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
"log"
"net/http"
)
@ -17,7 +17,7 @@ func Pty(c *gin.Context) {
// upgrade http to websocket
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
log.Println("pty ws upgrade error", err)
logger.Error(err)
return
}
@ -26,7 +26,7 @@ func Pty(c *gin.Context) {
p, err := pty.NewPipeLine(ws)
if err != nil {
log.Println("pty.NewPipLine error", err)
logger.Error(err)
return
}
@ -38,8 +38,9 @@ func Pty(c *gin.Context) {
err = <-errorChan
if err != nil {
log.Println(err)
if err != nil && websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseNoStatusReceived,
websocket.CloseNormalClosure) {
logger.Error(err)
}
return

View file

@ -1,10 +1,10 @@
package api
import (
"github.com/0xJacky/Nginx-UI/logger"
"github.com/0xJacky/Nginx-UI/server/service"
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
"log"
"net/http"
"os"
)
@ -48,7 +48,7 @@ func PerformCoreUpgrade(c *gin.Context) {
// upgrade http to websocket
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
log.Println("[Error] PerformCoreUpgrade Upgrade", err)
logger.Error(err)
return
}
defer ws.Close()
@ -61,7 +61,7 @@ func PerformCoreUpgrade(c *gin.Context) {
err = ws.ReadJSON(&control)
if err != nil {
log.Println("[Error] PerformCoreUpgrade ws.ReadJSON(&control)", err)
logger.Error(err)
return
}
@ -81,7 +81,7 @@ func PerformCoreUpgrade(c *gin.Context) {
"status": "error",
"message": err.Error(),
})
log.Println("[Error] PerformCoreUpgrade service.NewUpgrader()", err)
logger.Error(err)
return
}
_ = ws.WriteJSON(gin.H{
@ -109,7 +109,7 @@ func PerformCoreUpgrade(c *gin.Context) {
"status": "error",
"message": err.Error(),
})
log.Println("[Error] PerformCoreUpgrade DownloadLatestRelease", err)
logger.Error(err)
return
}
@ -138,7 +138,7 @@ func PerformCoreUpgrade(c *gin.Context) {
"status": "error",
"message": err.Error(),
})
log.Println("[Error] PerformCoreUpgrade", err)
logger.Error(err)
return
}
}