We are currently polishing the user experience of Nimbus as we approach Ethereum 2.0 mainnet launch.
The main way people interact with Nimbus is via log files, i.e. they watch the messages to make sure it’s running properly.
We have a couple of tradeoffs to make (log verbosity, log content, log level) but the first advice we would like are the colors of each log level. We have the following in descending order of criticity:
- Fatal: Node will crash
- Error: Bugs or critical unexpected behaviors, node cannot proceed with task, consistency compromised
- Warning: Expected behavior (file not found), node cannot proceed with task but can recover
- Notice: Start/quit, validator funds, own PoS attestations, own PoS blocks, chain reached finality, validators have been slashed (i.e. might indicate malicious activity or network/chain split) (only important info)
- Info: Networking or consensus information (standard user target)
- Debug: Common networking activity (new peers, kick peers, timeouts), consensus/Proof-of-Stake various processing, block/attestation from peer (dev + curious users who help debugging)
- Trace: Keep-alive, routine schedule (dev only)
We are currently revisiting those logs following user reports:
and our own experience
The first concrete question is a recommendation on a color scheme for each of those log level.
As you can see, the “NOT” / Notice log level looks scarier than warning even though it’s actually a level below.