feat!: use cosmossdk.io/log logger (#15011)
This commit is contained in:
@@ -21,6 +21,7 @@ import (
|
||||
"github.com/cosmos/cosmos-sdk/client"
|
||||
"github.com/cosmos/cosmos-sdk/codec/legacy"
|
||||
"github.com/cosmos/cosmos-sdk/server/config"
|
||||
servercmtlog "github.com/cosmos/cosmos-sdk/server/log"
|
||||
"github.com/cosmos/cosmos-sdk/telemetry"
|
||||
grpctypes "github.com/cosmos/cosmos-sdk/types/grpc"
|
||||
)
|
||||
@@ -148,9 +149,9 @@ func (s *Server) Start(ctx context.Context, cfg config.Config) error {
|
||||
|
||||
if enableUnsafeCORS {
|
||||
allowAllCORS := handlers.CORS(handlers.AllowedHeaders([]string{"Content-Type"}))
|
||||
errCh <- tmrpcserver.Serve(s.listener, allowAllCORS(s.Router), s.logger, cmtCfg)
|
||||
errCh <- tmrpcserver.Serve(s.listener, allowAllCORS(s.Router), servercmtlog.CometZeroLogWrapper{Logger: s.logger}, cmtCfg)
|
||||
} else {
|
||||
errCh <- tmrpcserver.Serve(s.listener, s.Router, s.logger, cmtCfg)
|
||||
errCh <- tmrpcserver.Serve(s.listener, s.Router, servercmtlog.CometZeroLogWrapper{Logger: s.logger}, cmtCfg)
|
||||
}
|
||||
}(cfg.API.EnableUnsafeCORS)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
cmtcfg "github.com/cometbft/cometbft/config"
|
||||
cmtcli "github.com/cometbft/cometbft/libs/cli"
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/client"
|
||||
@@ -25,7 +26,7 @@ func Execute(rootCmd *cobra.Command, envPrefix string, defaultHome string) error
|
||||
// https://github.com/spf13/cobra/pull/1118.
|
||||
ctx := CreateExecuteContext(context.Background())
|
||||
|
||||
rootCmd.PersistentFlags().String(flags.FlagLogLevel, cmtcfg.DefaultLogLevel, "The logging level (trace|debug|info|warn|error|fatal|panic)")
|
||||
rootCmd.PersistentFlags().String(flags.FlagLogLevel, zerolog.InfoLevel.String(), "The logging level (trace|debug|info|warn|error|fatal|panic)")
|
||||
rootCmd.PersistentFlags().String(flags.FlagLogFormat, cmtcfg.LogFormatPlain, "The logging format (json|plain)")
|
||||
|
||||
executor := cmtcli.PrepareBaseCmd(rootCmd, envPrefix, defaultHome)
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"cosmossdk.io/log"
|
||||
cmtlog "github.com/cometbft/cometbft/libs/log"
|
||||
)
|
||||
|
||||
var _ cmtlog.Logger = (*CometZeroLogWrapper)(nil)
|
||||
|
||||
// CometZeroLogWrapper provides a wrapper around a zerolog.Logger instance.
|
||||
// It implements CometBFT's Logger interface.
|
||||
type CometZeroLogWrapper struct {
|
||||
log.Logger
|
||||
}
|
||||
|
||||
// With returns a new wrapped logger with additional context provided by a set
|
||||
// of key/value tuples. The number of tuples must be even and the key of the
|
||||
// tuple must be a string.
|
||||
func (cmt CometZeroLogWrapper) With(keyVals ...interface{}) cmtlog.Logger {
|
||||
logger := cmt.Logger.With(keyVals...)
|
||||
return CometZeroLogWrapper{logger}
|
||||
}
|
||||
+1
-1
@@ -8,10 +8,10 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
abci "github.com/cometbft/cometbft/abci/types"
|
||||
"github.com/cometbft/cometbft/libs/log"
|
||||
db "github.com/cosmos/cosmos-db"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"cosmossdk.io/log"
|
||||
storetypes "cosmossdk.io/store/types"
|
||||
|
||||
bam "github.com/cosmos/cosmos-sdk/baseapp"
|
||||
|
||||
@@ -3,22 +3,15 @@ package mock
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"cosmossdk.io/log"
|
||||
abci "github.com/cometbft/cometbft/abci/types"
|
||||
cmtlog "github.com/cometbft/cometbft/libs/log"
|
||||
)
|
||||
|
||||
// SetupApp returns an application as well as a clean-up function to be used to
|
||||
// quickly setup a test case with an app.
|
||||
func SetupApp() (abci.Application, func(), error) {
|
||||
var logger cmtlog.Logger
|
||||
if testing.Verbose() {
|
||||
logger = cmtlog.NewTMLogger(cmtlog.NewSyncWriter(os.Stdout)).With("module", "mock")
|
||||
} else {
|
||||
logger = cmtlog.NewNopLogger()
|
||||
}
|
||||
|
||||
logger := log.NewTestingLogger()
|
||||
rootDir, err := os.MkdirTemp("", "mock-sdk")
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
|
||||
+3
-2
@@ -28,6 +28,7 @@ import (
|
||||
"github.com/cosmos/cosmos-sdk/server/api"
|
||||
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
|
||||
servergrpc "github.com/cosmos/cosmos-sdk/server/grpc"
|
||||
servercmtlog "github.com/cosmos/cosmos-sdk/server/log"
|
||||
"github.com/cosmos/cosmos-sdk/server/types"
|
||||
"github.com/cosmos/cosmos-sdk/telemetry"
|
||||
"github.com/cosmos/cosmos-sdk/types/mempool"
|
||||
@@ -229,7 +230,7 @@ func startStandAlone(svrCtx *Context, appCreator types.AppCreator) error {
|
||||
return fmt.Errorf("error creating listener: %v", err)
|
||||
}
|
||||
|
||||
svr.SetLogger(svrCtx.Logger.With("module", "abci-server"))
|
||||
svr.SetLogger(servercmtlog.CometZeroLogWrapper{Logger: svrCtx.Logger.With("module", "abci-server")})
|
||||
|
||||
ctx, cancelFn := context.WithCancel(context.Background())
|
||||
g, ctx := errgroup.WithContext(ctx)
|
||||
@@ -324,7 +325,7 @@ func startInProcess(svrCtx *Context, clientCtx client.Context, appCreator types.
|
||||
genDocProvider,
|
||||
node.DefaultDBProvider,
|
||||
node.DefaultMetricsProvider(cfg.Instrumentation),
|
||||
svrCtx.Logger,
|
||||
servercmtlog.CometZeroLogWrapper{Logger: svrCtx.Logger},
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
+37
-24
@@ -15,21 +15,21 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
cmtcmd "github.com/cometbft/cometbft/cmd/cometbft/commands"
|
||||
cmtcfg "github.com/cometbft/cometbft/config"
|
||||
cmtcli "github.com/cometbft/cometbft/libs/cli"
|
||||
dbm "github.com/cosmos/cosmos-db"
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/spf13/cast"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/pflag"
|
||||
"github.com/spf13/viper"
|
||||
|
||||
"cosmossdk.io/log"
|
||||
"cosmossdk.io/store"
|
||||
"cosmossdk.io/store/snapshots"
|
||||
snapshottypes "cosmossdk.io/store/snapshots/types"
|
||||
storetypes "cosmossdk.io/store/types"
|
||||
cmtcmd "github.com/cometbft/cometbft/cmd/cometbft/commands"
|
||||
cmtcfg "github.com/cometbft/cometbft/config"
|
||||
cmtcli "github.com/cometbft/cometbft/libs/cli"
|
||||
cmtflags "github.com/cometbft/cometbft/libs/cli/flags"
|
||||
cmtlog "github.com/cometbft/cometbft/libs/log"
|
||||
dbm "github.com/cosmos/cosmos-db"
|
||||
"github.com/spf13/cast"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/pflag"
|
||||
"github.com/spf13/viper"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/baseapp"
|
||||
"github.com/cosmos/cosmos-sdk/client/flags"
|
||||
@@ -48,7 +48,7 @@ const ServerContextKey = sdk.ContextKey("server.context")
|
||||
type Context struct {
|
||||
Viper *viper.Viper
|
||||
Config *cmtcfg.Config
|
||||
Logger cmtlog.Logger
|
||||
Logger log.Logger
|
||||
}
|
||||
|
||||
// ErrorCode contains the exit code for server exit.
|
||||
@@ -64,11 +64,11 @@ func NewDefaultContext() *Context {
|
||||
return NewContext(
|
||||
viper.New(),
|
||||
cmtcfg.DefaultConfig(),
|
||||
cmtlog.NewTMLogger(cmtlog.NewSyncWriter(os.Stdout)),
|
||||
log.NewLogger(),
|
||||
)
|
||||
}
|
||||
|
||||
func NewContext(v *viper.Viper, config *cmtcfg.Config, logger cmtlog.Logger) *Context {
|
||||
func NewContext(v *viper.Viper, config *cmtcfg.Config, logger log.Logger) *Context {
|
||||
return &Context{v, config, logger}
|
||||
}
|
||||
|
||||
@@ -153,21 +153,34 @@ func InterceptConfigsPreRunHandler(cmd *cobra.Command, customAppConfigTemplate s
|
||||
return err
|
||||
}
|
||||
|
||||
var logger cmtlog.Logger
|
||||
var logger log.Logger
|
||||
if serverCtx.Viper.GetString(flags.FlagLogFormat) == cmtcfg.LogFormatJSON {
|
||||
logger = cmtlog.NewTMJSONLogger(cmtlog.NewSyncWriter(os.Stdout))
|
||||
zl := zerolog.New(os.Stdout).With().Timestamp().Logger()
|
||||
logger = log.NewCustomLogger(zl)
|
||||
} else {
|
||||
logger = cmtlog.NewTMLogger(cmtlog.NewSyncWriter(os.Stdout))
|
||||
}
|
||||
logger, err = cmtflags.ParseLogLevel(config.LogLevel, logger, cmtcfg.DefaultLogLevel)
|
||||
if err != nil {
|
||||
return err
|
||||
logger = log.NewLogger()
|
||||
}
|
||||
|
||||
// Check if the CometBFT flag for trace logging is set if it is then setup
|
||||
// a tracing logger in this app as well.
|
||||
if serverCtx.Viper.GetBool(cmtcli.TraceFlag) {
|
||||
logger = cmtlog.NewTracingLogger(logger)
|
||||
// set filter level or keys for the logger if any
|
||||
logLvlStr := serverCtx.Viper.GetString(flags.FlagLogLevel)
|
||||
logLvl, err := zerolog.ParseLevel(logLvlStr)
|
||||
if err != nil {
|
||||
// If the log level is not a valid zerolog level, then we try to parse it as a key filter.
|
||||
filterFunc, err := log.ParseLogLevel(logLvlStr, zerolog.InfoLevel.String())
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to parse log level (%s): %w", logLvlStr, err)
|
||||
}
|
||||
|
||||
logger = log.FilterKeys(logger, filterFunc)
|
||||
} else {
|
||||
zl := logger.Impl().(*zerolog.Logger)
|
||||
// Check if the CometBFT flag for trace logging is set if it is then setup a tracing logger in this app as well.
|
||||
// Note it overrides log level passed in `log_levels`.
|
||||
if serverCtx.Viper.GetBool(cmtcli.TraceFlag) {
|
||||
logger = log.NewCustomLogger(zl.Level(zerolog.TraceLevel))
|
||||
} else {
|
||||
logger = log.NewCustomLogger(zl.Level(logLvl))
|
||||
}
|
||||
}
|
||||
|
||||
serverCtx.Logger = logger.With("module", "server")
|
||||
|
||||
Reference in New Issue
Block a user