fix(be):使用next-terminal 自定义的日志

This commit is contained in:
teaser
2021-03-19 22:58:47 +08:00
committed by dushixiang
parent e957545f1d
commit 0e4a5f97d9
19 changed files with 322 additions and 184 deletions
+2 -2
View File
@@ -4,10 +4,10 @@ import (
"strconv"
"strings"
"next-terminal/pkg/log"
"next-terminal/server/global"
"github.com/labstack/echo/v4"
"github.com/sirupsen/logrus"
)
func LoginLogPagingEndpoint(c echo.Context) error {
@@ -35,7 +35,7 @@ func LoginLogDeleteEndpoint(c echo.Context) error {
token := split[i]
global.Cache.Delete(token)
if err := userService.Logout(token); err != nil {
logrus.WithError(err).Error("Cache Delete Failed")
log.WithError(err).Error("Cache Delete Failed")
}
}
if err := loginLogRepository.DeleteByIdIn(split); err != nil {
+9 -10
View File
@@ -7,8 +7,8 @@ import (
"strings"
"time"
"next-terminal/pkg/log"
"next-terminal/server/global"
"next-terminal/server/log"
"next-terminal/server/model"
"next-terminal/server/repository"
"next-terminal/server/service"
@@ -17,7 +17,6 @@ import (
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
"github.com/patrickmn/go-cache"
"github.com/sirupsen/logrus"
"gorm.io/driver/mysql"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
@@ -54,13 +53,13 @@ func SetupRoutes(db *gorm.DB) *echo.Echo {
InitService()
if err := InitDBData(); err != nil {
logrus.WithError(err).Error("初始化数据异常")
log.WithError(err).Error("初始化数据异常")
}
e := echo.New()
e.HideBanner = true
e.Logger = log.GetEchoLogger()
//e.Logger = log.GetEchoLogger()
e.Use(log.Hook())
e.File("/", "web/build/index.html")
e.File("/asciinema.html", "web/build/asciinema.html")
e.File("/asciinema-player.js", "web/build/asciinema-player.js")
@@ -284,7 +283,7 @@ func ResetPassword() error {
if err := userRepository.Update(u); err != nil {
return err
}
logrus.Debugf("用户「%v」密码初始化为: %v", user.Username, password)
log.Debugf("用户「%v」密码初始化为: %v", user.Username, password)
return nil
}
@@ -294,10 +293,10 @@ func SetupCache() *cache.Cache {
mCache.OnEvicted(func(key string, value interface{}) {
if strings.HasPrefix(key, Token) {
token := GetTokenFormCacheKey(key)
logrus.Debugf("用户Token「%v」过期", token)
log.Debugf("用户Token「%v」过期", token)
err := userService.Logout(token)
if err != nil {
logrus.Errorf("退出登录失败 %v", err)
log.Errorf("退出登录失败 %v", err)
}
}
})
@@ -334,13 +333,13 @@ func SetupDB() *gorm.DB {
}
if err != nil {
logrus.WithError(err).Panic("连接数据库异常")
log.WithError(err).Panic("连接数据库异常")
}
if err := db.AutoMigrate(&model.User{}, &model.Asset{}, &model.AssetAttribute{}, &model.Session{}, &model.Command{},
&model.Credential{}, &model.Property{}, &model.ResourceSharer{}, &model.UserGroup{}, &model.UserGroupMember{},
&model.LoginLog{}, &model.Num{}, &model.Job{}, &model.JobLog{}, &model.AccessSecurity{}); err != nil {
logrus.WithError(err).Panic("初始化数据库表结构异常")
log.WithError(err).Panic("初始化数据库表结构异常")
}
return db
}
+7 -7
View File
@@ -13,6 +13,7 @@ import (
"strings"
"sync"
"next-terminal/pkg/log"
"next-terminal/server/constant"
"next-terminal/server/global"
"next-terminal/server/model"
@@ -20,7 +21,6 @@ import (
"github.com/labstack/echo/v4"
"github.com/pkg/sftp"
"github.com/sirupsen/logrus"
)
func SessionPagingEndpoint(c echo.Context) error {
@@ -106,12 +106,12 @@ func CloseSessionById(sessionId string, code int, reason string) {
defer mutex.Unlock()
observable, _ := global.Store.Get(sessionId)
if observable != nil {
logrus.Debugf("会话%v创建者退出,原因:%v", sessionId, reason)
log.Debugf("会话%v创建者退出,原因:%v", sessionId, reason)
observable.Subject.Close(code, reason)
for i := 0; i < len(observable.Observers); i++ {
observable.Observers[i].Close(code, reason)
logrus.Debugf("强制踢出会话%v的观察者", sessionId)
log.Debugf("强制踢出会话%v的观察者", sessionId)
}
}
global.Store.Del(sessionId)
@@ -265,7 +265,7 @@ func SessionUploadEndpoint(c echo.Context) error {
n, err := src.Read(buf)
if err != nil {
if err != io.EOF {
logrus.Warnf("文件上传错误 %v", err)
log.Warnf("文件上传错误 %v", err)
} else {
break
}
@@ -381,7 +381,7 @@ func SessionLsEndpoint(c echo.Context) error {
if tun.Subject.NextTerminal.SftpClient == nil {
sftpClient, err := sftp.NewClient(tun.Subject.NextTerminal.SshClient)
if err != nil {
logrus.Errorf("创建sftp客户端失败:%v", err.Error())
log.Errorf("创建sftp客户端失败:%v", err.Error())
return err
}
tun.Subject.NextTerminal.SftpClient = sftpClient
@@ -450,7 +450,7 @@ func SessionLsEndpoint(c echo.Context) error {
}
func SafetyRuleTrigger(c echo.Context) {
logrus.Warnf("IP %v 尝试进行攻击,请ban掉此IP", c.RealIP())
log.Warnf("IP %v 尝试进行攻击,请ban掉此IP", c.RealIP())
security := model.AccessSecurity{
ID: utils.UUID(),
Source: "安全规则触发",
@@ -612,6 +612,6 @@ func SessionRecordingEndpoint(c echo.Context) error {
recording = session.Recording + "/recording"
}
logrus.Debugf("读取录屏文件:%v,是否存在: %v, 是否为文件: %v", recording, utils.FileExists(recording), utils.IsFile(recording))
log.Debugf("读取录屏文件:%v,是否存在: %v, 是否为文件: %v", recording, utils.FileExists(recording), utils.IsFile(recording))
return c.File(recording)
}
+11 -11
View File
@@ -7,16 +7,16 @@ import (
"strconv"
"time"
"next-terminal/pkg/guacd"
"next-terminal/pkg/log"
"next-terminal/server/constant"
"next-terminal/server/global"
"next-terminal/server/guacd"
"next-terminal/server/model"
"next-terminal/server/term"
"next-terminal/server/utils"
"github.com/gorilla/websocket"
"github.com/labstack/echo/v4"
"github.com/sirupsen/logrus"
)
var UpGrader = websocket.Upgrader{
@@ -46,7 +46,7 @@ type WindowSize struct {
func SSHEndpoint(c echo.Context) (err error) {
ws, err := UpGrader.Upgrade(c.Response().Writer, c.Request(), nil)
if err != nil {
logrus.Errorf("升级为WebSocket协议失败:%v", err.Error())
log.Errorf("升级为WebSocket协议失败:%v", err.Error())
return err
}
@@ -109,7 +109,7 @@ func SSHEndpoint(c echo.Context) (err error) {
observers := append(observable.Observers, tun)
observable.Observers = observers
global.Store.Set(sessionId, observable)
logrus.Debugf("加入会话%v,当前观察者数量为:%v", session.ConnectionId, len(observers))
log.Debugf("加入会话%v,当前观察者数量为:%v", session.ConnectionId, len(observers))
}
return err
@@ -118,7 +118,7 @@ func SSHEndpoint(c echo.Context) (err error) {
nextTerminal, err := term.NewNextTerminal(ip, port, username, password, privateKey, passphrase, rows, cols, recording)
if err != nil {
logrus.Errorf("创建SSH客户端失败:%v", err.Error())
log.Errorf("创建SSH客户端失败:%v", err.Error())
msg := Message{
Type: Closed,
Content: err.Error(),
@@ -144,7 +144,7 @@ func SSHEndpoint(c echo.Context) (err error) {
Recording: recording,
}
// 创建新会话
logrus.Debugf("创建新会话 %v", sess.ConnectionId)
log.Debugf("创建新会话 %v", sess.ConnectionId)
if err := sessionRepository.UpdateById(&sess, sessionId); err != nil {
return err
}
@@ -172,7 +172,7 @@ func SSHEndpoint(c echo.Context) (err error) {
var msg Message
err = json.Unmarshal(message, &msg)
if err != nil {
logrus.Warnf("解析Json失败: %v, 原始字符串:%v", err, string(message))
log.Warnf("解析Json失败: %v, 原始字符串:%v", err, string(message))
continue
}
@@ -181,17 +181,17 @@ func SSHEndpoint(c echo.Context) (err error) {
var winSize WindowSize
err = json.Unmarshal([]byte(msg.Content), &winSize)
if err != nil {
logrus.Warnf("解析SSH会话窗口大小失败: %v", err)
log.Warnf("解析SSH会话窗口大小失败: %v", err)
continue
}
if err := nextTerminal.WindowChange(winSize.Rows, winSize.Cols); err != nil {
logrus.Warnf("更改SSH会话窗口大小失败: %v", err)
log.Warnf("更改SSH会话窗口大小失败: %v", err)
continue
}
case Data:
_, err = nextTerminal.Write([]byte(msg.Content))
if err != nil {
logrus.Debugf("SSH会话写入失败: %v", err)
log.Debugf("SSH会话写入失败: %v", err)
msg := Message{
Type: Closed,
Content: "the remote connection is closed.",
@@ -247,7 +247,7 @@ func WriteMessage(ws *websocket.Conn, msg Message) error {
func WriteByteMessage(ws *websocket.Conn, p []byte) {
err := ws.WriteMessage(websocket.TextMessage, p)
if err != nil {
logrus.Debugf("write: %v", err)
log.Debugf("write: %v", err)
}
}
+3 -4
View File
@@ -4,9 +4,8 @@ import (
"strconv"
"time"
"next-terminal/pkg/log"
"next-terminal/server/constant"
"github.com/sirupsen/logrus"
)
func SetupTicker() {
@@ -22,7 +21,7 @@ func SetupTicker() {
if now.Sub(sessions[i].ConnectedTime.Time) > time.Hour*1 {
_ = sessionRepository.DeleteById(sessions[i].ID)
s := sessions[i].Username + "@" + sessions[i].IP + ":" + strconv.Itoa(sessions[i].Port)
logrus.Infof("会话「%v」ID「%v」超过1小时未打开,已删除。", s, sessions[i].ID)
log.Infof("会话「%v」ID「%v」超过1小时未打开,已删除。", s, sessions[i].ID)
}
}
}
@@ -56,7 +55,7 @@ func SetupTicker() {
}
err := sessionRepository.DeleteByIds(sessionIds)
if err != nil {
logrus.Errorf("删除离线会话失败 %v", err)
log.Errorf("删除离线会话失败 %v", err)
}
}
}
+9 -9
View File
@@ -5,14 +5,14 @@ import (
"path"
"strconv"
"next-terminal/pkg/guacd"
"next-terminal/pkg/log"
"next-terminal/server/constant"
"next-terminal/server/global"
"next-terminal/server/guacd"
"next-terminal/server/model"
"github.com/gorilla/websocket"
"github.com/labstack/echo/v4"
"github.com/sirupsen/logrus"
)
const (
@@ -27,7 +27,7 @@ func TunEndpoint(c echo.Context) error {
ws, err := UpGrader.Upgrade(c.Response().Writer, c.Request(), nil)
if err != nil {
logrus.Errorf("升级为WebSocket协议失败:%v", err.Error())
log.Errorf("升级为WebSocket协议失败:%v", err.Error())
return err
}
@@ -49,11 +49,11 @@ func TunEndpoint(c echo.Context) error {
if len(connectionId) > 0 {
session, err = sessionRepository.FindByConnectionId(connectionId)
if err != nil {
logrus.Warnf("会话不存在")
log.Warnf("会话不存在")
return err
}
if session.Status != constant.Connected {
logrus.Warnf("会话未在线")
log.Warnf("会话未在线")
return errors.New("会话未在线")
}
configuration.ConnectionID = connectionId
@@ -135,7 +135,7 @@ func TunEndpoint(c echo.Context) error {
configuration.SetParameter(guacd.Backspace, propertyMap[guacd.Backspace])
configuration.SetParameter(guacd.TerminalType, propertyMap[guacd.TerminalType])
default:
logrus.WithField("configuration.Protocol", configuration.Protocol).Error("UnSupport Protocol")
log.WithField("configuration.Protocol", configuration.Protocol).Error("UnSupport Protocol")
return Fail(c, 400, "不支持的协议")
}
@@ -165,7 +165,7 @@ func TunEndpoint(c echo.Context) error {
if connectionId == "" {
CloseSessionById(sessionId, NewTunnelError, err.Error())
}
logrus.Printf("建立连接失败: %v", err.Error())
log.Printf("建立连接失败: %v", err.Error())
return err
}
@@ -194,7 +194,7 @@ func TunEndpoint(c echo.Context) error {
Recording: configuration.GetParameter(guacd.RecordingPath),
}
// 创建新会话
logrus.Debugf("创建新会话 %v", sess.ConnectionId)
log.Debugf("创建新会话 %v", sess.ConnectionId)
if err := sessionRepository.UpdateById(&sess, sessionId); err != nil {
return err
}
@@ -205,7 +205,7 @@ func TunEndpoint(c echo.Context) error {
observers := append(observable.Observers, tun)
observable.Observers = observers
global.Store.Set(sessionId, observable)
logrus.Debugf("加入会话%v,当前观察者数量为:%v", session.ConnectionId, len(observers))
log.Debugf("加入会话%v,当前观察者数量为:%v", session.ConnectionId, len(observers))
}
}
+4 -4
View File
@@ -4,12 +4,12 @@ import (
"strconv"
"strings"
"next-terminal/pkg/log"
"next-terminal/server/global"
"next-terminal/server/model"
"next-terminal/server/utils"
"github.com/labstack/echo/v4"
"github.com/sirupsen/logrus"
)
func UserCreateEndpoint(c echo.Context) error {
@@ -97,7 +97,7 @@ func UserDeleteEndpoint(c echo.Context) error {
for j := range loginLogs {
global.Cache.Delete(loginLogs[j].ID)
if err := userService.Logout(loginLogs[j].ID); err != nil {
logrus.WithError(err).WithField("id:", loginLogs[j].ID).Error("Cache Deleted Error")
log.WithError(err).WithField("id:", loginLogs[j].ID).Error("Cache Deleted Error")
return Fail(c, 500, "强制下线错误")
}
}
@@ -173,7 +173,7 @@ func ReloadToken() error {
token := loginLog.ID
user, err := userRepository.FindById(loginLog.UserId)
if err != nil {
logrus.Debugf("用户「%v」获取失败,忽略", loginLog.UserId)
log.Debugf("用户「%v」获取失败,忽略", loginLog.UserId)
continue
}
@@ -191,7 +191,7 @@ func ReloadToken() error {
} else {
global.Cache.Set(cacheKey, authorization, NotRememberEffectiveTime)
}
logrus.Debugf("重新加载用户「%v」授权Token「%v」到缓存", user.Nickname, token)
log.Debugf("重新加载用户「%v」授权Token「%v」到缓存", user.Nickname, token)
}
return nil
}