mirror of
https://github.com/XrayR-project/XrayR.git
synced 2025-06-07 12:59:54 +00:00
Replace standard log package with logrus
The standard "log" package was replaced by the structured logger "github.com/sirupsen/logrus" for better log control in various files. This change will allow to tailor the logging information more precisely and make logs easier to read and analyze. All calls of standard log methods were replaced by their logrus counterparts.
This commit is contained in:
parent
5ba0624bbc
commit
115d7bad6f
@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"reflect"
|
||||
"regexp"
|
||||
@ -14,6 +13,8 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/go-resty/resty/v2"
|
||||
|
||||
"github.com/XrayR-project/XrayR/api"
|
||||
@ -294,7 +295,7 @@ func (c *APIClient) ParseUserListResponse(userInfoResponse *[]User) (*[]api.User
|
||||
c.access.Unlock()
|
||||
}()
|
||||
|
||||
var deviceLimit, localDeviceLimit int = 0, 0
|
||||
var deviceLimit, localDeviceLimit = 0, 0
|
||||
var speedLimit uint64 = 0
|
||||
var userList []api.UserInfo
|
||||
for _, user := range *userInfoResponse {
|
||||
@ -332,8 +333,8 @@ func (c *APIClient) ParseUserListResponse(userInfoResponse *[]User) (*[]api.User
|
||||
UUID: user.UUID,
|
||||
SpeedLimit: speedLimit,
|
||||
DeviceLimit: deviceLimit,
|
||||
Passwd: user.UUID,
|
||||
Email: user.UUID + "@bunpanel.user",
|
||||
Passwd: user.UUID,
|
||||
Email: user.UUID + "@bunpanel.user",
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
@ -13,6 +12,8 @@ import (
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/bitly/go-simplejson"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
@ -13,6 +12,8 @@ import (
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/bitly/go-simplejson"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/xtls/xray-core/common/net"
|
||||
@ -57,7 +58,7 @@ func New(apiConfig *api.Config) *APIClient {
|
||||
|
||||
var nodeType string
|
||||
|
||||
if apiConfig.NodeType =="V2ray" && apiConfig.EnableVless {
|
||||
if apiConfig.NodeType == "V2ray" && apiConfig.EnableVless {
|
||||
nodeType = "vless"
|
||||
} else {
|
||||
nodeType = strings.ToLower(apiConfig.NodeType)
|
||||
@ -363,12 +364,12 @@ func (c *APIClient) parseSSNodeResponse(s *serverConfig) (*api.NodeInfo, error)
|
||||
// parseV2rayNodeResponse parse the response for the given nodeInfo format
|
||||
func (c *APIClient) parseV2rayNodeResponse(s *serverConfig) (*api.NodeInfo, error) {
|
||||
var (
|
||||
host string
|
||||
header json.RawMessage
|
||||
enableTLS bool
|
||||
host string
|
||||
header json.RawMessage
|
||||
enableTLS bool
|
||||
enableREALITY bool
|
||||
dest string
|
||||
xVer uint64
|
||||
dest string
|
||||
xVer uint64
|
||||
)
|
||||
|
||||
if s.VlessTlsSettings.Dest != "" {
|
||||
@ -383,11 +384,11 @@ func (c *APIClient) parseV2rayNodeResponse(s *serverConfig) (*api.NodeInfo, erro
|
||||
}
|
||||
|
||||
realityConfig := api.REALITYConfig{
|
||||
Dest: dest + ":" + s.VlessTlsSettings.ServerPort,
|
||||
Dest: dest + ":" + s.VlessTlsSettings.ServerPort,
|
||||
ProxyProtocolVer: xVer,
|
||||
ServerNames: []string{s.VlessTlsSettings.Sni},
|
||||
PrivateKey: s.VlessTlsSettings.PrivateKey,
|
||||
ShortIds: []string{s.VlessTlsSettings.ShortId},
|
||||
ServerNames: []string{s.VlessTlsSettings.Sni},
|
||||
PrivateKey: s.VlessTlsSettings.PrivateKey,
|
||||
ShortIds: []string{s.VlessTlsSettings.ShortId},
|
||||
}
|
||||
|
||||
if c.EnableVless {
|
||||
|
@ -4,13 +4,14 @@ import (
|
||||
"bufio"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/go-resty/resty/v2"
|
||||
|
||||
"github.com/XrayR-project/XrayR/api"
|
||||
|
@ -4,13 +4,14 @@ import (
|
||||
"bufio"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/go-resty/resty/v2"
|
||||
|
||||
"github.com/XrayR-project/XrayR/api"
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"reflect"
|
||||
"regexp"
|
||||
@ -14,6 +13,8 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/go-resty/resty/v2"
|
||||
|
||||
"github.com/XrayR-project/XrayR/api"
|
||||
@ -687,7 +688,7 @@ func (c *APIClient) ParseUserListResponse(userInfoResponse *[]UserResponse) (*[]
|
||||
c.access.Unlock()
|
||||
}()
|
||||
|
||||
var deviceLimit, localDeviceLimit int = 0, 0
|
||||
var deviceLimit, localDeviceLimit = 0, 0
|
||||
var speedLimit uint64 = 0
|
||||
var userList []api.UserInfo
|
||||
for _, user := range *userInfoResponse {
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
@ -13,6 +12,8 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/bitly/go-simplejson"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/sagernet/sing-shadowsocks/shadowaead_2022"
|
||||
@ -57,7 +58,7 @@ func New(apiConfig *api.Config) *APIClient {
|
||||
log.Print(v.Err)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// Create Key for each requests
|
||||
client.SetQueryParams(map[string]string{
|
||||
"node_id": strconv.Itoa(apiConfig.NodeID),
|
||||
@ -163,7 +164,7 @@ func (c *APIClient) GetNodeInfo() (nodeInfo *api.NodeInfo, err error) {
|
||||
}).
|
||||
ForceContentType("application/json").
|
||||
Get(c.APIHost)
|
||||
|
||||
|
||||
// Etag identifier for a specific version of a resource. StatusCode = 304 means no changed
|
||||
if res.StatusCode() == 304 {
|
||||
return nil, errors.New(api.NodeNotModified)
|
||||
@ -217,7 +218,7 @@ func (c *APIClient) GetUserList() (UserList *[]api.UserInfo, err error) {
|
||||
}).
|
||||
ForceContentType("application/json").
|
||||
Get(c.APIHost)
|
||||
|
||||
|
||||
// Etag identifier for a specific version of a resource. StatusCode = 304 means no changed
|
||||
if res.StatusCode() == 304 {
|
||||
return nil, errors.New(api.UserNotModified)
|
||||
@ -426,7 +427,7 @@ func (c *APIClient) ParseV2rayNodeResponse(nodeInfoResponse *simplejson.Json) (*
|
||||
var header json.RawMessage
|
||||
var enableTLS bool
|
||||
var enableVless bool
|
||||
var enableReality bool
|
||||
var enableReality bool
|
||||
var alterID uint16 = 0
|
||||
|
||||
tmpInboundInfo := nodeInfoResponse.Get("inbounds").MustArray()
|
||||
@ -493,4 +494,4 @@ func (c *APIClient) ParseV2rayNodeResponse(nodeInfoResponse *simplejson.Json) (*
|
||||
REALITYConfig: realityConfig,
|
||||
}
|
||||
return nodeInfo, nil
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"path"
|
||||
@ -11,6 +10,8 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/fsnotify/fsnotify"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
|
@ -6,12 +6,13 @@ import (
|
||||
"encoding/json"
|
||||
"encoding/pem"
|
||||
"errors"
|
||||
"log"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/go-acme/lego/v4/certcrypto"
|
||||
"github.com/go-acme/lego/v4/lego"
|
||||
"github.com/go-acme/lego/v4/registration"
|
||||
|
@ -4,11 +4,12 @@ import (
|
||||
"bytes"
|
||||
"crypto/x509"
|
||||
"encoding/json"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/go-acme/lego/v4/certcrypto"
|
||||
"github.com/go-acme/lego/v4/certificate"
|
||||
"golang.org/x/net/idna"
|
||||
|
@ -3,9 +3,10 @@ package mylego
|
||||
import (
|
||||
"crypto"
|
||||
"crypto/x509"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/go-acme/lego/v4/certcrypto"
|
||||
"github.com/go-acme/lego/v4/certificate"
|
||||
"github.com/go-acme/lego/v4/lego"
|
||||
|
@ -2,11 +2,11 @@ package mylego
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/go-acme/lego/v4/certificate"
|
||||
"github.com/go-acme/lego/v4/lego"
|
||||
"github.com/go-acme/lego/v4/registration"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
const rootPathWarningMessage = `!!!! HEADS UP !!!!
|
||||
|
@ -1,10 +1,11 @@
|
||||
package mylego
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/go-acme/lego/v4/certcrypto"
|
||||
"github.com/go-acme/lego/v4/challenge/dns01"
|
||||
"github.com/go-acme/lego/v4/challenge/http01"
|
||||
|
2
main.go
2
main.go
@ -1,7 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/XrayR-project/XrayR/cmd"
|
||||
)
|
||||
|
@ -2,17 +2,12 @@ package panel
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"os"
|
||||
"sync"
|
||||
|
||||
"github.com/XrayR-project/XrayR/api/bunpanel"
|
||||
"github.com/XrayR-project/XrayR/api/gov2panel"
|
||||
"github.com/XrayR-project/XrayR/api/newV2board"
|
||||
"github.com/XrayR-project/XrayR/app/mydispatcher"
|
||||
|
||||
"dario.cat/mergo"
|
||||
"github.com/r3labs/diff/v2"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/xtls/xray-core/app/proxyman"
|
||||
"github.com/xtls/xray-core/app/stats"
|
||||
"github.com/xtls/xray-core/common/serial"
|
||||
@ -20,10 +15,14 @@ import (
|
||||
"github.com/xtls/xray-core/infra/conf"
|
||||
|
||||
"github.com/XrayR-project/XrayR/api"
|
||||
"github.com/XrayR-project/XrayR/api/bunpanel"
|
||||
"github.com/XrayR-project/XrayR/api/gov2panel"
|
||||
"github.com/XrayR-project/XrayR/api/newV2board"
|
||||
"github.com/XrayR-project/XrayR/api/pmpanel"
|
||||
"github.com/XrayR-project/XrayR/api/proxypanel"
|
||||
"github.com/XrayR-project/XrayR/api/sspanel"
|
||||
"github.com/XrayR-project/XrayR/api/v2raysocks"
|
||||
"github.com/XrayR-project/XrayR/app/mydispatcher"
|
||||
_ "github.com/XrayR-project/XrayR/cmd/distro/all"
|
||||
"github.com/XrayR-project/XrayR/service"
|
||||
"github.com/XrayR-project/XrayR/service/controller"
|
||||
@ -155,7 +154,6 @@ func (p *Panel) loadCore(panelConfig *Config) *core.Instance {
|
||||
if err != nil {
|
||||
log.Panicf("failed to create instance: %s", err)
|
||||
}
|
||||
log.Printf("Xray Core Version: %s", core.Version())
|
||||
|
||||
return server
|
||||
}
|
||||
|
@ -3,10 +3,10 @@ package controller
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"reflect"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/xtls/xray-core/common/protocol"
|
||||
"github.com/xtls/xray-core/common/task"
|
||||
"github.com/xtls/xray-core/core"
|
||||
@ -44,6 +44,7 @@ type Controller struct {
|
||||
stm stats.Manager
|
||||
dispatcher *mydispatcher.DefaultDispatcher
|
||||
startAt time.Time
|
||||
logger *log.Entry
|
||||
}
|
||||
|
||||
type periodicTask struct {
|
||||
@ -53,6 +54,11 @@ type periodicTask struct {
|
||||
|
||||
// New return a Controller service with default parameters.
|
||||
func New(server *core.Instance, api api.API, config *Config, panelType string) *Controller {
|
||||
logger := log.NewEntry(log.StandardLogger()).WithFields(log.Fields{
|
||||
"Host": api.Describe().APIHost,
|
||||
"Type": api.Describe().NodeType,
|
||||
"ID": api.Describe().NodeID,
|
||||
})
|
||||
controller := &Controller{
|
||||
server: server,
|
||||
config: config,
|
||||
@ -63,6 +69,7 @@ func New(server *core.Instance, api api.API, config *Config, panelType string) *
|
||||
stm: server.GetFeature(stats.ManagerType()).(stats.Manager),
|
||||
dispatcher: server.GetFeature(routing.DispatcherType()).(*mydispatcher.DefaultDispatcher),
|
||||
startAt: time.Now(),
|
||||
logger: logger,
|
||||
}
|
||||
|
||||
return controller
|
||||
@ -85,7 +92,7 @@ func (c *Controller) Start() error {
|
||||
// Add new tag
|
||||
err = c.addNewTag(newNodeInfo)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
c.logger.Panic(err)
|
||||
return err
|
||||
}
|
||||
// Update user
|
||||
@ -104,16 +111,16 @@ func (c *Controller) Start() error {
|
||||
|
||||
// Add Limiter
|
||||
if err := c.AddInboundLimiter(c.Tag, newNodeInfo.SpeedLimit, userInfo, c.config.GlobalDeviceLimitConfig); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
|
||||
// Add Rule Manager
|
||||
if !c.config.DisableGetRule {
|
||||
if ruleList, err := c.apiClient.GetNodeRule(); err != nil {
|
||||
log.Printf("Get rule list filed: %s", err)
|
||||
c.logger.Printf("Get rule list filed: %s", err)
|
||||
} else if len(*ruleList) > 0 {
|
||||
if err := c.UpdateRule(c.Tag, *ruleList); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -155,7 +162,7 @@ func (c *Controller) Start() error {
|
||||
|
||||
// Start periodic tasks
|
||||
for i := range c.tasks {
|
||||
log.Printf("%s Start %s periodic task", c.logPrefix(), c.tasks[i].tag)
|
||||
c.logger.Printf("Start %s periodic task", c.tasks[i].tag)
|
||||
go c.tasks[i].Start()
|
||||
}
|
||||
|
||||
@ -167,7 +174,7 @@ func (c *Controller) Close() error {
|
||||
for i := range c.tasks {
|
||||
if c.tasks[i].Periodic != nil {
|
||||
if err := c.tasks[i].Periodic.Close(); err != nil {
|
||||
log.Panicf("%s %s periodic task close failed: %s", c.logPrefix(), c.tasks[i].tag, err)
|
||||
c.logger.Panicf("%s periodic task close failed: %s", c.tasks[i].tag, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -189,7 +196,7 @@ func (c *Controller) nodeInfoMonitor() (err error) {
|
||||
nodeInfoChanged = false
|
||||
newNodeInfo = c.nodeInfo
|
||||
} else {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
@ -205,7 +212,7 @@ func (c *Controller) nodeInfoMonitor() (err error) {
|
||||
usersChanged = false
|
||||
newUserInfo = c.userList
|
||||
} else {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
@ -217,14 +224,14 @@ func (c *Controller) nodeInfoMonitor() (err error) {
|
||||
oldTag := c.Tag
|
||||
err := c.removeOldTag(oldTag)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
return nil
|
||||
}
|
||||
if c.nodeInfo.NodeType == "Shadowsocks-Plugin" {
|
||||
err = c.removeOldTag(fmt.Sprintf("dokodemo-door_%s+1", c.Tag))
|
||||
}
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
return nil
|
||||
}
|
||||
// Add new tag
|
||||
@ -232,13 +239,13 @@ func (c *Controller) nodeInfoMonitor() (err error) {
|
||||
c.Tag = c.buildNodeTag()
|
||||
err = c.addNewTag(newNodeInfo)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
return nil
|
||||
}
|
||||
nodeInfoChanged = true
|
||||
// Remove Old limiter
|
||||
if err = c.DeleteInboundLimiter(oldTag); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
return nil
|
||||
}
|
||||
} else {
|
||||
@ -250,11 +257,11 @@ func (c *Controller) nodeInfoMonitor() (err error) {
|
||||
if !c.config.DisableGetRule {
|
||||
if ruleList, err := c.apiClient.GetNodeRule(); err != nil {
|
||||
if err.Error() != api.RuleNotModified {
|
||||
log.Printf("Get rule list filed: %s", err)
|
||||
c.logger.Printf("Get rule list filed: %s", err)
|
||||
}
|
||||
} else if len(*ruleList) > 0 {
|
||||
if err := c.UpdateRule(c.Tag, *ruleList); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -262,13 +269,13 @@ func (c *Controller) nodeInfoMonitor() (err error) {
|
||||
if nodeInfoChanged {
|
||||
err = c.addNewUser(newUserInfo, newNodeInfo)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Add Limiter
|
||||
if err := c.AddInboundLimiter(c.Tag, newNodeInfo.SpeedLimit, newUserInfo, c.config.GlobalDeviceLimitConfig); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -283,21 +290,21 @@ func (c *Controller) nodeInfoMonitor() (err error) {
|
||||
}
|
||||
err := c.removeUsers(deletedEmail, c.Tag)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
}
|
||||
if len(added) > 0 {
|
||||
err = c.addNewUser(&added, c.nodeInfo)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
// Update Limiter
|
||||
if err := c.UpdateInboundLimiter(c.Tag, &added); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
log.Printf("%s %d user deleted, %d user added", c.logPrefix(), len(deleted), len(added))
|
||||
c.logger.Printf("%d user deleted, %d user added", len(deleted), len(added))
|
||||
}
|
||||
c.userList = newUserInfo
|
||||
return nil
|
||||
@ -418,7 +425,7 @@ func (c *Controller) addNewUser(userInfo *[]api.UserInfo, nodeInfo *api.NodeInfo
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
log.Printf("%s Added %d new users", c.logPrefix(), len(*userInfo))
|
||||
c.logger.Printf("Added %d new users", len(*userInfo))
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -466,7 +473,7 @@ func limitUser(c *Controller, user api.UserInfo, silentUsers *[]api.UserInfo) {
|
||||
currentSpeedLimit: c.config.AutoSpeedLimitConfig.LimitSpeed,
|
||||
originSpeedLimit: user.SpeedLimit,
|
||||
}
|
||||
log.Printf("Limit User: %s Speed: %d End: %s", c.buildUserTag(&user), c.config.AutoSpeedLimitConfig.LimitSpeed, time.Unix(c.limitedUsers[user].end, 0).Format("01-02 15:04:05"))
|
||||
c.logger.Printf("Limit User: %s Speed: %d End: %s", c.buildUserTag(&user), c.config.AutoSpeedLimitConfig.LimitSpeed, time.Unix(c.limitedUsers[user].end, 0).Format("01-02 15:04:05"))
|
||||
user.SpeedLimit = uint64((c.config.AutoSpeedLimitConfig.LimitSpeed * 1000000) / 8)
|
||||
*silentUsers = append(*silentUsers, user)
|
||||
}
|
||||
@ -480,7 +487,7 @@ func (c *Controller) userInfoMonitor() (err error) {
|
||||
// Get server status
|
||||
CPU, Mem, Disk, Uptime, err := serverstatus.GetSystemInfo()
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
err = c.apiClient.ReportNodeStatus(
|
||||
&api.NodeStatus{
|
||||
@ -490,25 +497,25 @@ func (c *Controller) userInfoMonitor() (err error) {
|
||||
Uptime: Uptime,
|
||||
})
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
// Unlock users
|
||||
if c.config.AutoSpeedLimitConfig.Limit > 0 && len(c.limitedUsers) > 0 {
|
||||
log.Printf("%s Limited users:", c.logPrefix())
|
||||
c.logger.Printf("Limited users:")
|
||||
toReleaseUsers := make([]api.UserInfo, 0)
|
||||
for user, limitInfo := range c.limitedUsers {
|
||||
if time.Now().Unix() > limitInfo.end {
|
||||
user.SpeedLimit = limitInfo.originSpeedLimit
|
||||
toReleaseUsers = append(toReleaseUsers, user)
|
||||
log.Printf("User: %s Speed: %d End: nil (Unlimit)", c.buildUserTag(&user), user.SpeedLimit)
|
||||
c.logger.Printf("User: %s Speed: %d End: nil (Unlimit)", c.buildUserTag(&user), user.SpeedLimit)
|
||||
delete(c.limitedUsers, user)
|
||||
} else {
|
||||
log.Printf("User: %s Speed: %d End: %s", c.buildUserTag(&user), limitInfo.currentSpeedLimit, time.Unix(c.limitedUsers[user].end, 0).Format("01-02 15:04:05"))
|
||||
c.logger.Printf("User: %s Speed: %d End: %s", c.buildUserTag(&user), limitInfo.currentSpeedLimit, time.Unix(c.limitedUsers[user].end, 0).Format("01-02 15:04:05"))
|
||||
}
|
||||
}
|
||||
if len(toReleaseUsers) > 0 {
|
||||
if err := c.UpdateInboundLimiter(c.Tag, &toReleaseUsers); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -559,7 +566,7 @@ func (c *Controller) userInfoMonitor() (err error) {
|
||||
}
|
||||
if len(limitedUsers) > 0 {
|
||||
if err := c.UpdateInboundLimiter(c.Tag, &limitedUsers); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
}
|
||||
if len(userTraffic) > 0 {
|
||||
@ -569,7 +576,7 @@ func (c *Controller) userInfoMonitor() (err error) {
|
||||
}
|
||||
// If report traffic error, not clear the traffic
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
} else {
|
||||
c.resetTraffic(&upCounterList, &downCounterList)
|
||||
}
|
||||
@ -577,23 +584,23 @@ func (c *Controller) userInfoMonitor() (err error) {
|
||||
|
||||
// Report Online info
|
||||
if onlineDevice, err := c.GetOnlineDevice(c.Tag); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
} else if len(*onlineDevice) > 0 {
|
||||
if err = c.apiClient.ReportNodeOnlineUsers(onlineDevice); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
} else {
|
||||
log.Printf("%s Report %d online users", c.logPrefix(), len(*onlineDevice))
|
||||
c.logger.Printf("Report %d online users", len(*onlineDevice))
|
||||
}
|
||||
}
|
||||
|
||||
// Report Illegal user
|
||||
if detectResult, err := c.GetDetectResult(c.Tag); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
} else if len(*detectResult) > 0 {
|
||||
if err = c.apiClient.ReportIllegal(detectResult); err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
} else {
|
||||
log.Printf("%s Report %d illegal behaviors", c.logPrefix(), len(*detectResult))
|
||||
c.logger.Printf("Report %d illegal behaviors", len(*detectResult))
|
||||
}
|
||||
|
||||
}
|
||||
@ -604,9 +611,9 @@ func (c *Controller) buildNodeTag() string {
|
||||
return fmt.Sprintf("%s_%s_%d", c.nodeInfo.NodeType, c.config.ListenIP, c.nodeInfo.Port)
|
||||
}
|
||||
|
||||
func (c *Controller) logPrefix() string {
|
||||
return fmt.Sprintf("[%s] %s(ID=%d)", c.clientInfo.APIHost, c.nodeInfo.NodeType, c.nodeInfo.NodeID)
|
||||
}
|
||||
// func (c *Controller) logPrefix() string {
|
||||
// return fmt.Sprintf("[%s] %s(ID=%d)", c.clientInfo.APIHost, c.nodeInfo.NodeType, c.nodeInfo.NodeID)
|
||||
// }
|
||||
|
||||
// Check Cert
|
||||
func (c *Controller) certMonitor() error {
|
||||
@ -615,12 +622,12 @@ func (c *Controller) certMonitor() error {
|
||||
case "dns", "http", "tls":
|
||||
lego, err := mylego.New(c.config.CertConfig)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
// Xray-core supports the OcspStapling certification hot renew
|
||||
_, _, _, err = lego.RenewCert()
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
c.logger.Print(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user