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

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 {

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
}

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)
}

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)
}
}

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)
}
}
}

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))
}
}

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
}