mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
address feedback: make diff smaller by adding backward-compatible log levels and logger interface method
This commit is contained in:
parent
0d145d224f
commit
7045f6ed72
18 changed files with 49 additions and 33 deletions
|
|
@ -45,7 +45,7 @@ func main() {
|
|||
natdesc = flag.String("nat", "none", "port mapping mechanism (any|none|upnp|pmp|pmp:<IP>|extip:<IP>)")
|
||||
netrestrict = flag.String("netrestrict", "", "restrict network communication to the given IP networks (CIDR masks)")
|
||||
runv5 = flag.Bool("v5", false, "run a v5 topic discovery bootnode")
|
||||
verbosity = flag.Int("verbosity", int(log.LevelInfo), "log verbosity (0-5)")
|
||||
verbosity = flag.Int("verbosity", int(log.LvlInfo), "log verbosity (0-5)")
|
||||
vmodule = flag.String("vmodule", "", "log verbosity pattern")
|
||||
|
||||
nodeKey *ecdsa.PrivateKey
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ func blockTestCmd(ctx *cli.Context) error {
|
|||
if len(ctx.Args().First()) == 0 {
|
||||
return errors.New("path-to-test argument required")
|
||||
}
|
||||
|
||||
var tracer vm.EVMLogger
|
||||
// Configure the EVM logger
|
||||
if ctx.Bool(MachineFlag.Name) {
|
||||
|
|
|
|||
|
|
@ -2438,7 +2438,7 @@ func (s *Syncer) OnAccounts(peer SyncPeer, id uint64, hashes []common.Hash, acco
|
|||
for _, node := range proof {
|
||||
size += common.StorageSize(len(node))
|
||||
}
|
||||
logger := peer.Log().With("reqid", id)
|
||||
logger := peer.Log().New("reqid", id)
|
||||
logger.Trace("Delivering range of accounts", "hashes", len(hashes), "accounts", len(accounts), "proofs", len(proof), "bytes", size)
|
||||
|
||||
// Whether or not the response is valid, we can mark the peer as idle and
|
||||
|
|
@ -2548,7 +2548,7 @@ func (s *Syncer) onByteCodes(peer SyncPeer, id uint64, bytecodes [][]byte) error
|
|||
for _, code := range bytecodes {
|
||||
size += common.StorageSize(len(code))
|
||||
}
|
||||
logger := peer.Log().With("reqid", id)
|
||||
logger := peer.Log().New("reqid", id)
|
||||
logger.Trace("Delivering set of bytecodes", "bytecodes", len(bytecodes), "bytes", size)
|
||||
|
||||
// Whether or not the response is valid, we can mark the peer as idle and
|
||||
|
|
@ -2661,7 +2661,7 @@ func (s *Syncer) OnStorage(peer SyncPeer, id uint64, hashes [][]common.Hash, slo
|
|||
for _, node := range proof {
|
||||
size += common.StorageSize(len(node))
|
||||
}
|
||||
logger := peer.Log().With("reqid", id)
|
||||
logger := peer.Log().New("reqid", id)
|
||||
logger.Trace("Delivering ranges of storage slots", "accounts", len(hashes), "hashes", hashCount, "slots", slotCount, "proofs", len(proof), "size", size)
|
||||
|
||||
// Whether or not the response is valid, we can mark the peer as idle and
|
||||
|
|
@ -2795,7 +2795,7 @@ func (s *Syncer) OnTrieNodes(peer SyncPeer, id uint64, trienodes [][]byte) error
|
|||
for _, node := range trienodes {
|
||||
size += common.StorageSize(len(node))
|
||||
}
|
||||
logger := peer.Log().With("reqid", id)
|
||||
logger := peer.Log().New("reqid", id)
|
||||
logger.Trace("Delivering set of healing trienodes", "trienodes", len(trienodes), "bytes", size)
|
||||
|
||||
// Whether or not the response is valid, we can mark the peer as idle and
|
||||
|
|
@ -2902,7 +2902,7 @@ func (s *Syncer) onHealByteCodes(peer SyncPeer, id uint64, bytecodes [][]byte) e
|
|||
for _, code := range bytecodes {
|
||||
size += common.StorageSize(len(code))
|
||||
}
|
||||
logger := peer.Log().With("reqid", id)
|
||||
logger := peer.Log().New("reqid", id)
|
||||
logger.Trace("Delivering set of healing bytecodes", "bytecodes", len(bytecodes), "bytes", size)
|
||||
|
||||
// Whether or not the response is valid, we can mark the peer as idle and
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ var (
|
|||
|
||||
func init() {
|
||||
glogger = log.NewGlogHandler(log.TerminalHandler(os.Stderr, false))
|
||||
glogger.Verbosity(log.LevelInfo)
|
||||
glogger.Verbosity(log.LvlInfo)
|
||||
log.SetDefault(log.NewLogger(glogger))
|
||||
}
|
||||
|
||||
|
|
@ -204,7 +204,6 @@ func Setup(ctx *cli.Context) error {
|
|||
} else {
|
||||
context = append(context, "format", "terminal")
|
||||
}
|
||||
|
||||
if rotation {
|
||||
// Lumberjack uses <processname>-lumberjack.log in is.TempDir() if empty.
|
||||
// so typically /tmp/geth-lumberjack.log on linux
|
||||
|
|
|
|||
|
|
@ -157,6 +157,10 @@ func (l *logger) With(ctx ...interface{}) log.Logger {
|
|||
return &logger{l.t, l.l.With(ctx...), l.mu, l.h}
|
||||
}
|
||||
|
||||
func (l *logger) New(ctx ...interface{}) log.Logger {
|
||||
return l.With(ctx...)
|
||||
}
|
||||
|
||||
// flush writes all buffered messages and clears the buffer.
|
||||
func (l *logger) flush() {
|
||||
l.t.Helper()
|
||||
|
|
|
|||
|
|
@ -29,6 +29,11 @@ const (
|
|||
LevelWarn = slog.LevelWarn
|
||||
LevelError = slog.LevelError
|
||||
LevelCrit slog.Level = 12
|
||||
|
||||
// for backward-compatibility
|
||||
LvlTrace = LevelTrace
|
||||
LvlInfo = LevelInfo
|
||||
LvlDebug = LevelDebug
|
||||
)
|
||||
|
||||
// convert from old Geth verbosity level constants
|
||||
|
|
@ -108,6 +113,9 @@ type Logger interface {
|
|||
// With returns a new Logger that has this logger's attributes plus the given attributes
|
||||
With(ctx ...interface{}) Logger
|
||||
|
||||
// With returns a new Logger that has this logger's attributes plus the given attributes. Identical to 'With'.
|
||||
New(ctx ...interface{}) Logger
|
||||
|
||||
// Log logs a message at the specified level with context key/value pairs
|
||||
Log(level slog.Level, msg string, ctx ...interface{})
|
||||
|
||||
|
|
@ -196,6 +204,10 @@ func (l *logger) With(ctx ...interface{}) Logger {
|
|||
return &logger{l.inner.With(ctx...)}
|
||||
}
|
||||
|
||||
func (l *logger) New(ctx ...interface{}) Logger {
|
||||
return l.With(ctx...)
|
||||
}
|
||||
|
||||
func (l *logger) Trace(msg string, ctx ...interface{}) {
|
||||
l.write(LevelTrace, msg, ctx...)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ func createAndStartServer(t *testing.T, conf *httpConfig, ws bool, wsConf *wsCon
|
|||
if timeouts == nil {
|
||||
timeouts = &rpc.DefaultHTTPTimeouts
|
||||
}
|
||||
srv := newHTTPServer(testlog.Logger(t, log.LevelDebug), *timeouts)
|
||||
srv := newHTTPServer(testlog.Logger(t, log.LvlDebug), *timeouts)
|
||||
assert.NoError(t, srv.enableRPC(apis(), *conf))
|
||||
if ws {
|
||||
assert.NoError(t, srv.enableWS(nil, *wsConf))
|
||||
|
|
|
|||
|
|
@ -422,7 +422,7 @@ func runDialTest(t *testing.T, config dialConfig, rounds []dialTestRound) {
|
|||
config.clock = clock
|
||||
config.dialer = dialer
|
||||
config.resolver = resolver
|
||||
config.log = testlog.Logger(t, log.LevelTrace)
|
||||
config.log = testlog.Logger(t, log.LvlTrace)
|
||||
config.rand = rand.New(rand.NewSource(0x1111))
|
||||
|
||||
// Set up the dialer. The setup function below runs on the dialTask
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ func newUDPTest(t *testing.T) *udpTest {
|
|||
ln := enode.NewLocalNode(test.db, test.localkey)
|
||||
test.udp, _ = ListenV4(test.pipe, ln, Config{
|
||||
PrivateKey: test.localkey,
|
||||
Log: testlog.Logger(t, log.LevelTrace),
|
||||
Log: testlog.Logger(t, log.LvlTrace),
|
||||
})
|
||||
test.table = test.udp.tab
|
||||
// Wait for initial refresh so the table doesn't send unexpected findnode.
|
||||
|
|
|
|||
|
|
@ -769,7 +769,7 @@ func newUDPV5Test(t *testing.T) *udpV5Test {
|
|||
ln.Set(enr.UDP(30303))
|
||||
test.udp, _ = ListenV5(test.pipe, ln, Config{
|
||||
PrivateKey: test.localkey,
|
||||
Log: testlog.Logger(t, log.LevelTrace),
|
||||
Log: testlog.Logger(t, log.LvlTrace),
|
||||
ValidSchemes: enode.ValidSchemesForTesting,
|
||||
})
|
||||
test.udp.codec = &testCodec{test: test, id: ln.ID()}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ func TestClientSyncTree(t *testing.T) {
|
|||
wantSeq = uint(1)
|
||||
)
|
||||
|
||||
c := NewClient(Config{Resolver: r, Logger: testlog.Logger(t, log.LevelTrace)})
|
||||
c := NewClient(Config{Resolver: r, Logger: testlog.Logger(t, log.LvlTrace)})
|
||||
stree, err := c.SyncTree("enrtree://AKPYQIUQIL7PSIACI32J7FGZW56E5FKHEFCCOFHILBIMW3M6LWXS2@n")
|
||||
if err != nil {
|
||||
t.Fatal("sync error:", err)
|
||||
|
|
@ -91,7 +91,7 @@ func TestClientSyncTreeBadNode(t *testing.T) {
|
|||
"C7HRFPF3BLGF3YR4DY5KX3SMBE.n": "enrtree://AM5FCQLWIZX2QFPNJAP7VUERCCRNGRHWZG3YYHIUV7BVDQ5FDPRT2@morenodes.example.org",
|
||||
"INDMVBZEEQ4ESVYAKGIYU74EAA.n": "enr:-----",
|
||||
}
|
||||
c := NewClient(Config{Resolver: r, Logger: testlog.Logger(t, log.LevelTrace)})
|
||||
c := NewClient(Config{Resolver: r, Logger: testlog.Logger(t, log.LvlTrace)})
|
||||
_, err := c.SyncTree("enrtree://AKPYQIUQIL7PSIACI32J7FGZW56E5FKHEFCCOFHILBIMW3M6LWXS2@n")
|
||||
wantErr := nameError{name: "INDMVBZEEQ4ESVYAKGIYU74EAA.n", err: entryError{typ: "enr", err: errInvalidENR}}
|
||||
if err != wantErr {
|
||||
|
|
@ -110,7 +110,7 @@ func TestIterator(t *testing.T) {
|
|||
|
||||
c := NewClient(Config{
|
||||
Resolver: r,
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
RateLimit: 500,
|
||||
})
|
||||
it, err := c.NewIterator(url)
|
||||
|
|
@ -174,7 +174,7 @@ func TestIteratorLinks(t *testing.T) {
|
|||
|
||||
c := NewClient(Config{
|
||||
Resolver: newMapResolver(tree1.ToTXT("t1"), tree2.ToTXT("t2")),
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
RateLimit: 500,
|
||||
})
|
||||
it, err := c.NewIterator(url2)
|
||||
|
|
@ -195,7 +195,7 @@ func TestIteratorNodeUpdates(t *testing.T) {
|
|||
resolver = newMapResolver()
|
||||
c = NewClient(Config{
|
||||
Resolver: resolver,
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
RecheckInterval: 20 * time.Minute,
|
||||
RateLimit: 500,
|
||||
})
|
||||
|
|
@ -233,7 +233,7 @@ func TestIteratorRootRecheckOnFail(t *testing.T) {
|
|||
resolver = newMapResolver()
|
||||
c = NewClient(Config{
|
||||
Resolver: resolver,
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
RecheckInterval: 20 * time.Minute,
|
||||
RateLimit: 500,
|
||||
// Disabling the cache is required for this test because the client doesn't
|
||||
|
|
@ -271,7 +271,7 @@ func TestIteratorEmptyTree(t *testing.T) {
|
|||
resolver = newMapResolver()
|
||||
c = NewClient(Config{
|
||||
Resolver: resolver,
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
RecheckInterval: 20 * time.Minute,
|
||||
RateLimit: 500,
|
||||
})
|
||||
|
|
@ -332,7 +332,7 @@ func TestIteratorLinkUpdates(t *testing.T) {
|
|||
resolver = newMapResolver()
|
||||
c = NewClient(Config{
|
||||
Resolver: resolver,
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
RecheckInterval: 20 * time.Minute,
|
||||
RateLimit: 500,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ func newPeer(log log.Logger, conn *conn, protocols []Protocol) *Peer {
|
|||
protoErr: make(chan error, len(protomap)+1), // protocols + pingLoop
|
||||
closed: make(chan struct{}),
|
||||
pingRecv: make(chan struct{}, 16),
|
||||
log: log.With("id", conn.node.ID(), "conn", conn.flags),
|
||||
log: log.New("id", conn.node.ID(), "conn", conn.flags),
|
||||
}
|
||||
return p
|
||||
}
|
||||
|
|
|
|||
|
|
@ -977,7 +977,7 @@ func (srv *Server) setupConn(c *conn, flags connFlag, dialDest *enode.Node) erro
|
|||
} else {
|
||||
c.node = nodeFromConn(remotePubkey, c.fd)
|
||||
}
|
||||
clog := srv.log.With("id", c.node.ID(), "addr", c.fd.RemoteAddr(), "conn", c.flags)
|
||||
clog := srv.log.New("id", c.node.ID(), "addr", c.fd.RemoteAddr(), "conn", c.flags)
|
||||
err = srv.checkpoint(c, srv.checkpointPostHandshake)
|
||||
if err != nil {
|
||||
clog.Trace("Rejected peer", "err", err)
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ func TestServerPortMapping(t *testing.T) {
|
|||
NoDial: true,
|
||||
ListenAddr: ":0",
|
||||
NAT: mockNAT,
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
clock: clock,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ func startTestServer(t *testing.T, remoteKey *ecdsa.PublicKey, pf func(*Peer)) *
|
|||
ListenAddr: "127.0.0.1:0",
|
||||
NoDiscovery: true,
|
||||
PrivateKey: newkey(),
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
}
|
||||
server := &Server{
|
||||
Config: config,
|
||||
|
|
@ -211,7 +211,7 @@ func TestServerRemovePeerDisconnect(t *testing.T) {
|
|||
PrivateKey: newkey(),
|
||||
MaxPeers: 1,
|
||||
NoDiscovery: true,
|
||||
Logger: testlog.Logger(t, log.LevelTrace).With("server", "1"),
|
||||
Logger: testlog.Logger(t, log.LvlTrace).New("server", "1"),
|
||||
}}
|
||||
srv2 := &Server{Config: Config{
|
||||
PrivateKey: newkey(),
|
||||
|
|
@ -219,7 +219,7 @@ func TestServerRemovePeerDisconnect(t *testing.T) {
|
|||
NoDiscovery: true,
|
||||
NoDial: true,
|
||||
ListenAddr: "127.0.0.1:0",
|
||||
Logger: testlog.Logger(t, log.LevelTrace).With("server", "2"),
|
||||
Logger: testlog.Logger(t, log.LvlTrace).New("server", "2"),
|
||||
}}
|
||||
srv1.Start()
|
||||
defer srv1.Stop()
|
||||
|
|
@ -255,7 +255,7 @@ func TestServerAtCap(t *testing.T) {
|
|||
NoDial: true,
|
||||
NoDiscovery: true,
|
||||
TrustedNodes: []*enode.Node{newNode(trustedID, "")},
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
},
|
||||
}
|
||||
if err := srv.Start(); err != nil {
|
||||
|
|
@ -331,7 +331,7 @@ func TestServerPeerLimits(t *testing.T) {
|
|||
NoDial: true,
|
||||
NoDiscovery: true,
|
||||
Protocols: []Protocol{discard},
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
},
|
||||
newTransport: func(fd net.Conn, dialDest *ecdsa.PublicKey) transport { return tp },
|
||||
}
|
||||
|
|
@ -438,7 +438,7 @@ func TestServerSetupConn(t *testing.T) {
|
|||
NoDial: true,
|
||||
NoDiscovery: true,
|
||||
Protocols: []Protocol{discard},
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
}
|
||||
srv := &Server{
|
||||
Config: cfg,
|
||||
|
|
@ -525,7 +525,7 @@ func TestServerInboundThrottle(t *testing.T) {
|
|||
NoDial: true,
|
||||
NoDiscovery: true,
|
||||
Protocols: []Protocol{discard},
|
||||
Logger: testlog.Logger(t, log.LevelTrace),
|
||||
Logger: testlog.Logger(t, log.LvlTrace),
|
||||
},
|
||||
newTransport: func(fd net.Conn, dialDest *ecdsa.PublicKey) transport {
|
||||
newTransportCalled <- struct{}{}
|
||||
|
|
|
|||
|
|
@ -228,7 +228,7 @@ func RandomNodeConfig() *NodeConfig {
|
|||
Name: fmt.Sprintf("node_%s", enodId.String()),
|
||||
Port: port,
|
||||
EnableMsgEvents: true,
|
||||
LogVerbosity: log.LevelInfo,
|
||||
LogVerbosity: log.LvlInfo,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ const (
|
|||
// Run implements the ping-pong protocol which sends ping messages to the peer
|
||||
// at 10s intervals, and responds to pings with pong messages.
|
||||
func (p *pingPongService) Run(peer *p2p.Peer, rw p2p.MsgReadWriter) error {
|
||||
log := p.log.With("peer.id", peer.ID())
|
||||
log := p.log.New("peer.id", peer.ID())
|
||||
|
||||
errC := make(chan error, 1)
|
||||
go func() {
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ func newHandler(connCtx context.Context, conn jsonWriter, idgen func() ID, reg *
|
|||
batchResponseMaxSize: batchResponseMaxSize,
|
||||
}
|
||||
if conn.remoteAddr() != "" {
|
||||
h.log = h.log.With("conn", conn.remoteAddr())
|
||||
h.log = h.log.New("conn", conn.remoteAddr())
|
||||
}
|
||||
h.unsubscribeCb = newCallback(reflect.Value{}, reflect.ValueOf(h.unsubscribe))
|
||||
return h
|
||||
|
|
|
|||
Loading…
Reference in a new issue