mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-16 17:03:46 +00:00
add flag to format logs
This commit is contained in:
parent
60951973dc
commit
1865b12357
2 changed files with 30 additions and 4 deletions
|
|
@ -36,6 +36,7 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/portalnetwork/storage"
|
"github.com/ethereum/go-ethereum/portalnetwork/storage"
|
||||||
"github.com/ethereum/go-ethereum/portalnetwork/web3"
|
"github.com/ethereum/go-ethereum/portalnetwork/web3"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/ethereum/go-ethereum/rpc"
|
||||||
|
"github.com/mattn/go-isatty"
|
||||||
_ "github.com/mattn/go-sqlite3"
|
_ "github.com/mattn/go-sqlite3"
|
||||||
"github.com/protolambda/zrnt/eth2/configs"
|
"github.com/protolambda/zrnt/eth2/configs"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
|
|
@ -95,11 +96,14 @@ var (
|
||||||
utils.MetricsInfluxDBBucketFlag,
|
utils.MetricsInfluxDBBucketFlag,
|
||||||
utils.MetricsInfluxDBOrganizationFlag,
|
utils.MetricsInfluxDBOrganizationFlag,
|
||||||
}
|
}
|
||||||
|
logsFlags = []cli.Flag{
|
||||||
|
utils.LogFormatFlag,
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
app.Action = shisui
|
app.Action = shisui
|
||||||
app.Flags = flags.Merge(portalProtocolFlags, historyRpcFlags, metricsFlags)
|
app.Flags = flags.Merge(portalProtocolFlags, historyRpcFlags, metricsFlags, logsFlags)
|
||||||
flags.AutoEnvVars(app.Flags, "SHISUI")
|
flags.AutoEnvVars(app.Flags, "SHISUI")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -111,7 +115,10 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func shisui(ctx *cli.Context) error {
|
func shisui(ctx *cli.Context) error {
|
||||||
setDefaultLogger(ctx.Int(utils.PortalLogLevelFlag.Name))
|
err := setDefaultLogger(ctx.Int(utils.PortalLogLevelFlag.Name), ctx.String(utils.LogFormatFlag.Name))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// Start metrics export if enabled
|
// Start metrics export if enabled
|
||||||
utils.SetupMetrics(ctx)
|
utils.SetupMetrics(ctx)
|
||||||
|
|
@ -139,12 +146,26 @@ func shisui(ctx *cli.Context) error {
|
||||||
return startPortalRpcServer(*config, conn, config.RpcAddr, clientChan)
|
return startPortalRpcServer(*config, conn, config.RpcAddr, clientChan)
|
||||||
}
|
}
|
||||||
|
|
||||||
func setDefaultLogger(logLevel int) {
|
func setDefaultLogger(logLevel int, logFormat string) error {
|
||||||
glogger := log.NewGlogHandler(log.NewTerminalHandler(os.Stderr, true))
|
var glogger *log.GlogHandler
|
||||||
|
switch {
|
||||||
|
case logFormat == "json":
|
||||||
|
glogger = log.NewGlogHandler(log.JSONHandler(os.Stderr))
|
||||||
|
case logFormat == "logfmt":
|
||||||
|
glogger = log.NewGlogHandler(log.LogfmtHandler(os.Stderr))
|
||||||
|
case logFormat == "", logFormat == "terminal":
|
||||||
|
useColor := (isatty.IsTerminal(os.Stderr.Fd()) || isatty.IsCygwinTerminal(os.Stderr.Fd())) && os.Getenv("TERM") != "dumb"
|
||||||
|
glogger = log.NewGlogHandler(log.NewTerminalHandler(os.Stderr, useColor))
|
||||||
|
default:
|
||||||
|
// Unknown log format specified
|
||||||
|
return fmt.Errorf("unknown log format: %v", logFormat)
|
||||||
|
}
|
||||||
slogVerbosity := log.FromLegacyLevel(logLevel)
|
slogVerbosity := log.FromLegacyLevel(logLevel)
|
||||||
glogger.Verbosity(slogVerbosity)
|
glogger.Verbosity(slogVerbosity)
|
||||||
defaultLogger := log.NewLogger(glogger)
|
defaultLogger := log.NewLogger(glogger)
|
||||||
log.SetDefault(defaultLogger)
|
log.SetDefault(defaultLogger)
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func handlerInterrupt(clientChan <-chan *Client) {
|
func handlerInterrupt(clientChan <-chan *Client) {
|
||||||
|
|
|
||||||
|
|
@ -1026,6 +1026,11 @@ Please note that --` + MetricsHTTPFlag.Name + ` must be set to start the server.
|
||||||
Category: flags.PortalNetworkCategory,
|
Category: flags.PortalNetworkCategory,
|
||||||
Value: cli.NewStringSlice(portalwire.History.Name()),
|
Value: cli.NewStringSlice(portalwire.History.Name()),
|
||||||
}
|
}
|
||||||
|
LogFormatFlag = &cli.StringFlag{
|
||||||
|
Name: "log.format",
|
||||||
|
Usage: "Log format to use (json|logfmt|terminal)",
|
||||||
|
Category: flags.LoggingCategory,
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue