Skip to content

Commit

Permalink
Add the command line of setting log level (#109)
Browse files Browse the repository at this point in the history
  • Loading branch information
simlecode authored Jun 9, 2021
1 parent 8450043 commit bbbd198
Show file tree
Hide file tree
Showing 19 changed files with 126 additions and 61 deletions.
10 changes: 10 additions & 0 deletions api/client/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ type IMessager interface {
ResponseEvent(ctx context.Context, resp *gatewayTypes.ResponseEvent) error //perm:write
ListenWalletEvent(ctx context.Context, wrp *walletevent.WalletRegisterPolicy) (chan *gatewayTypes.RequestEvent, error) //perm:write
SupportNewAccount(ctx context.Context, channelId string, account string) error //perm:write

SetLogLevel(ctx context.Context, level string) error //perm:admin
}

var _ IMessager = (*Message)(nil)
Expand Down Expand Up @@ -113,6 +115,8 @@ type Message struct {
ResponseEvent func(ctx context.Context, resp *gatewayTypes.ResponseEvent) error
ListenWalletEvent func(ctx context.Context, wrp *walletevent.WalletRegisterPolicy) (chan *gatewayTypes.RequestEvent, error)
SupportNewAccount func(ctx context.Context, channelId string, account string) error

SetLogLevel func(ctx context.Context, level string) error
}
}

Expand Down Expand Up @@ -291,3 +295,9 @@ func (message *Message) ListenWalletEvent(ctx context.Context, wrp *walletevent.
func (message *Message) SupportNewAccount(ctx context.Context, channelId string, account string) error {
return message.Internal.SupportNewAccount(ctx, channelId, account)
}

/////// log ///////

func (message *Message) SetLogLevel(ctx context.Context, level string) error {
return message.Internal.SetLogLevel(ctx, level)
}
1 change: 1 addition & 0 deletions api/controller/auth_map.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,5 @@ var AuthMap = map[string]string{
"DeleteAddress": "admin",
"SetFeeParams": "admin",
"WalletHas": "read",
"SetLogLevel": "admin",
}
6 changes: 2 additions & 4 deletions api/controller/controller.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package controller

import (
"github.com/sirupsen/logrus"
)
import "github.com/filecoin-project/venus-messager/log"

type BaseController struct {
Logger *logrus.Logger
Logger *log.Logger
}
6 changes: 3 additions & 3 deletions api/controller/modules.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import (
"strconv"

"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
"golang.org/x/xerrors"

"github.com/filecoin-project/venus-messager/log"
"github.com/filecoin-project/venus-messager/service"
"github.com/filecoin-project/venus-messager/types"
)
Expand All @@ -37,7 +37,7 @@ const (

var errorInterface = reflect.TypeOf((*error)(nil)).Elem()

func SetupController(router *gin.Engine, sMap service.ServiceMap, log *logrus.Logger) error {
func SetupController(router *gin.Engine, sMap service.ServiceMap, log *log.Logger) error {
v1 := router.Group("rpc/v0")
var ts []reflect.Type
ts = append(ts, reflect.TypeOf(Message{}), reflect.TypeOf(Address{}), reflect.TypeOf(SharedParamsCtrl{}),
Expand All @@ -56,7 +56,7 @@ type JsonRpcResponse struct {
Error *RespError `json:"error,omitempty"`
}

func registerController(v1 *gin.RouterGroup, sMap service.ServiceMap, log *logrus.Logger, controllers []reflect.Type) error {
func registerController(v1 *gin.RouterGroup, sMap service.ServiceMap, log *log.Logger, controllers []reflect.Type) error {
for i := range controllers {
controllerT := controllers[i]
methodNumber := controllerT.NumMethod()
Expand Down
9 changes: 5 additions & 4 deletions api/jwt/jwt_middleware.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,19 @@ import (
"github.com/filecoin-project/venus-auth/core"
"github.com/filecoin-project/venus-auth/util"
"github.com/ipfs-force-community/venus-gateway/types"
"github.com/sirupsen/logrus"

"github.com/filecoin-project/venus-messager/log"
)

type AuthMux struct {
jwtClient IJwtClient
log *logrus.Logger
log *log.Logger
mux *http.ServeMux
trustHandle map[string]http.Handler
}

func NewAuthMux(jwtClient IJwtClient, log *logrus.Logger, mux *http.ServeMux) *AuthMux {
return &AuthMux{jwtClient: jwtClient, log: log, mux: mux, trustHandle: map[string]http.Handler{}}
func NewAuthMux(jwtClient IJwtClient, logger *log.Logger, mux *http.ServeMux) *AuthMux {
return &AuthMux{jwtClient: jwtClient, log: logger, mux: mux, trustHandle: map[string]http.Handler{}}
}

func (authMux *AuthMux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
Expand Down
7 changes: 5 additions & 2 deletions api/modules.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ import (

"github.com/filecoin-project/go-jsonrpc"
"github.com/filecoin-project/venus-auth/core"
"github.com/sirupsen/logrus"
"go.uber.org/fx"
"golang.org/x/xerrors"

"github.com/filecoin-project/venus-messager/api/client"
"github.com/filecoin-project/venus-messager/api/controller"
"github.com/filecoin-project/venus-messager/api/jwt"
"github.com/filecoin-project/venus-messager/gateway"
"github.com/filecoin-project/venus-messager/log"
"github.com/filecoin-project/venus-messager/service"
)

func RunAPI(lc fx.Lifecycle, jwtClient jwt.IJwtClient, lst net.Listener, log *logrus.Logger, msgImp *MessageImp) error {
func RunAPI(lc fx.Lifecycle, jwtClient jwt.IJwtClient, lst net.Listener, log *log.Logger, msgImp *MessageImp) error {
var msgAPI client.Message
PermissionedProxy(controller.AuthMap, msgImp, &msgAPI.Internal)

Expand Down Expand Up @@ -59,6 +59,7 @@ type ImplParams struct {
NodeService *service.NodeService
SharedParamsService *service.SharedParamsService
GatewayService *gateway.GatewayService `optional:"true"`
Logger *log.Logger
}

type MessageImp struct {
Expand All @@ -67,6 +68,7 @@ type MessageImp struct {
*service.NodeService
*service.SharedParamsService
*gateway.GatewayService
*log.Logger
}

var _ client.IMessager = (*MessageImp)(nil)
Expand All @@ -78,6 +80,7 @@ func NewMessageImp(implParams ImplParams) *MessageImp {
NodeService: implParams.NodeService,
SharedParamsService: implParams.SharedParamsService,
GatewayService: implParams.GatewayService,
Logger: implParams.Logger,
}
}

Expand Down
37 changes: 37 additions & 0 deletions cli/log.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package cli

import (
"github.com/urfave/cli/v2"
"golang.org/x/xerrors"
)

var LogCmds = &cli.Command{
Name: "log",
Usage: "log commands",
Subcommands: []*cli.Command{
setLevelCmd,
},
}

var setLevelCmd = &cli.Command{
Name: "set-level",
Usage: "set log level, eg. trace,debug,info,warn|warning,error,fatal,panic",
ArgsUsage: "level",
Action: func(ctx *cli.Context) error {
client, closer, err := getAPI(ctx)
if err != nil {
return err
}
defer closer()

if ctx.NArg() == 0 {
return xerrors.New("must has level argument")
}

err = client.SetLogLevel(ctx.Context, ctx.Args().Get(0))
if err != nil {
return err
}
return nil
},
}
34 changes: 27 additions & 7 deletions log/log.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package log

import (
"context"
"fmt"
"math"
"net/http"
Expand All @@ -14,24 +15,43 @@ import (
"github.com/filecoin-project/venus-messager/config"
)

func SetLogger(logCfg *config.LogConfig) (*logrus.Logger, error) {
type Logger struct {
*logrus.Logger
}

func New() *Logger {
return &Logger{logrus.New()}
}

func SetLogger(logCfg *config.LogConfig) (*Logger, error) {
log := logrus.New()
level, err := logrus.ParseLevel(logCfg.Level)
if err != nil {
return nil, err
}
log.SetFormatter(&logrus.TextFormatter{
ForceColors: true,
FullTimestamp: true,
})
log.SetLevel(level)
logger := &Logger{log}
err := logger.SetLogLevel(context.Background(), logCfg.Level)
if err != nil {
return nil, err
}

file, err := os.OpenFile(logCfg.Path, os.O_CREATE|os.O_WRONLY, 0666)
if err == nil {
logrus.SetOutput(file)
} else {
return nil, xerrors.Errorf("open log file fail")
}
return log, nil
return logger, nil
}

func (logger *Logger) SetLogLevel(ctx context.Context, levelStr string) error {
level, err := logrus.ParseLevel(levelStr)
if err != nil {
return err
}
logger.SetLevel(level)

return nil
}

// 2016-09-27 09:38:21.541541811 +0200 CEST
Expand Down
4 changes: 2 additions & 2 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import (
ma "github.com/multiformats/go-multiaddr"
manet "github.com/multiformats/go-multiaddr/net"

"github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"
"go.uber.org/fx"
"golang.org/x/xerrors"
Expand Down Expand Up @@ -42,6 +41,7 @@ func main() {
ccli.AddrCmds,
ccli.SharedParamsCmds,
ccli.NodeCmds,
ccli.LogCmds,
runCmd,
},
}
Expand Down Expand Up @@ -282,7 +282,7 @@ func updateFlag(cfg *config.Config, ctx *cli.Context) error {
}

type fxLogger struct {
log *logrus.Logger
log *log.Logger
}

func (l fxLogger) Printf(str string, args ...interface{}) {
Expand Down
2 changes: 1 addition & 1 deletion messager.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
backTime = 86400

[node]
url = "/ip4/8.130.166.31/tcp/1234"
url = "/ip4/8.130.165.167/tcp/1234"
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoidGVzdG1pbmVyIiwicGVybSI6ImFkbWluIiwiZXh0IjoiIn0.oakIfSg1Iiv1T2F1BtH1bsb_1GeXWuirdPSjvE5wQLs"

[wallet]
Expand Down
9 changes: 4 additions & 5 deletions service/address_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@ package service
import (
"context"

"github.com/filecoin-project/go-state-types/big"

"github.com/filecoin-project/go-address"
"github.com/filecoin-project/go-state-types/big"
venusTypes "github.com/filecoin-project/venus/pkg/types"
"github.com/sirupsen/logrus"
"golang.org/x/xerrors"

"github.com/filecoin-project/venus-messager/gateway"
"github.com/filecoin-project/venus-messager/log"
"github.com/filecoin-project/venus-messager/models/repo"
"github.com/filecoin-project/venus-messager/types"
)
Expand All @@ -19,13 +18,13 @@ var errAddressNotExists = xerrors.New("address not exists")

type AddressService struct {
repo repo.Repo
log *logrus.Logger
log *log.Logger

sps *SharedParamsService
walletClient *gateway.IWalletCli
}

func NewAddressService(repo repo.Repo, logger *logrus.Logger, sps *SharedParamsService, walletClient *gateway.IWalletCli) *AddressService {
func NewAddressService(repo repo.Repo, logger *log.Logger, sps *SharedParamsService, walletClient *gateway.IWalletCli) *AddressService {
addressService := &AddressService{
repo: repo,
log: logger,
Expand Down
7 changes: 4 additions & 3 deletions service/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@ package service
import (
"context"

"golang.org/x/xerrors"

"github.com/filecoin-project/venus-messager/log"
"github.com/filecoin-project/venus/pkg/chain"
"github.com/filecoin-project/venus/pkg/types"
"github.com/sirupsen/logrus"
"golang.org/x/xerrors"
)

type NodeEvents struct {
client *NodeClient
log *logrus.Logger
log *log.Logger
msgService *MessageService
}

Expand Down
18 changes: 7 additions & 11 deletions service/message_selector.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,18 @@ import (
"sync"
"time"

"modernc.org/mathutil"

"github.com/filecoin-project/venus-messager/gateway"

"github.com/filecoin-project/go-address"
"github.com/filecoin-project/venus-wallet/core"

"github.com/filecoin-project/go-state-types/abi"
"github.com/filecoin-project/go-state-types/big"

"github.com/filecoin-project/venus-wallet/core"
"github.com/filecoin-project/venus/pkg/crypto"
venusTypes "github.com/filecoin-project/venus/pkg/types"
"github.com/sirupsen/logrus"
"golang.org/x/xerrors"
"modernc.org/mathutil"

"github.com/filecoin-project/venus-messager/config"
"github.com/filecoin-project/venus-messager/gateway"
"github.com/filecoin-project/venus-messager/log"
"github.com/filecoin-project/venus-messager/models/repo"
"github.com/filecoin-project/venus-messager/types"
)
Expand All @@ -33,7 +29,7 @@ const (

type MessageSelector struct {
repo repo.Repo
log *logrus.Logger
log *log.Logger
cfg *config.MessageServiceConfig
nodeClient *NodeClient
addressService *AddressService
Expand All @@ -55,14 +51,14 @@ type msgErrInfo struct {
}

func NewMessageSelector(repo repo.Repo,
log *logrus.Logger,
logger *log.Logger,
cfg *config.MessageServiceConfig,
nodeClient *NodeClient,
addressService *AddressService,
sps *SharedParamsService,
walletClient *gateway.IWalletCli) *MessageSelector {
return &MessageSelector{repo: repo,
log: log,
log: logger,
cfg: cfg,
nodeClient: nodeClient,
addressService: addressService,
Expand Down
Loading

0 comments on commit bbbd198

Please sign in to comment.