feat!: use cosmossdk.io/log logger (#15011)

This commit is contained in:
Julien Robert
2023-02-27 21:36:22 +00:00
committed by GitHub
parent 35d1e7a90a
commit 5d559dd265
101 changed files with 510 additions and 403 deletions
+3 -2
View File
@@ -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)
+2 -1
View File
@@ -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)
+22
View File
@@ -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
View File
@@ -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"
+2 -9
View File
@@ -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
View File
@@ -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
View File
@@ -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")