mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-12 19:05:55 +02:00
refactor: use zap as logger ⚡
This commit is contained in:
parent
2831208de3
commit
f305701b30
34 changed files with 327 additions and 175 deletions
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue