independent flag for json structured logging
- logjson flag remove logformat flag - passed to eth Config - logsystem not a field of Ethereum - LogSystem does not need to expose GetLogLevel/SetLogLevel - message struct just implements more generic LogMsg interface - LogMsg is a fmt.Stringer with Level() - jsonMsg ([]byte) implements LogMsg - remove "raw" systems - move level logic inside StdLogSystem - logsystems only print their kind of msg: jsonLogSystem prints jsonMsg, StdLogSystem prints stdMsg
This commit is contained in:
@ -42,11 +42,11 @@ type Config struct {
|
||||
ProtocolVersion int
|
||||
NetworkId int
|
||||
|
||||
DataDir string
|
||||
LogFile string
|
||||
LogLevel int
|
||||
LogFormat string
|
||||
VmDebug bool
|
||||
DataDir string
|
||||
LogFile string
|
||||
LogLevel int
|
||||
LogJSON string
|
||||
VmDebug bool
|
||||
|
||||
MaxPeers int
|
||||
Port string
|
||||
@ -136,7 +136,7 @@ type Ethereum struct {
|
||||
blockSub event.Subscription
|
||||
miner *miner.Miner
|
||||
|
||||
logger logger.LogSystem
|
||||
// logger logger.LogSystem
|
||||
|
||||
Mining bool
|
||||
DataDir string
|
||||
@ -147,7 +147,10 @@ type Ethereum struct {
|
||||
|
||||
func New(config *Config) (*Ethereum, error) {
|
||||
// Boostrap database
|
||||
servlogsystem := logger.New(config.DataDir, config.LogFile, config.LogLevel, config.LogFormat)
|
||||
logger.New(config.DataDir, config.LogFile, config.LogLevel)
|
||||
if len(config.LogJSON) > 0 {
|
||||
logger.NewJSONsystem(config.DataDir, config.LogJSON)
|
||||
}
|
||||
|
||||
newdb := config.NewDB
|
||||
if newdb == nil {
|
||||
@ -174,12 +177,12 @@ func New(config *Config) (*Ethereum, error) {
|
||||
servlogger.Infof("Protocol Version: %v, Network Id: %v", config.ProtocolVersion, config.NetworkId)
|
||||
|
||||
eth := &Ethereum{
|
||||
shutdownChan: make(chan bool),
|
||||
blockDb: blockDb,
|
||||
stateDb: stateDb,
|
||||
extraDb: extraDb,
|
||||
eventMux: &event.TypeMux{},
|
||||
logger: servlogsystem,
|
||||
shutdownChan: make(chan bool),
|
||||
blockDb: blockDb,
|
||||
stateDb: stateDb,
|
||||
extraDb: extraDb,
|
||||
eventMux: &event.TypeMux{},
|
||||
// logger: servlogsystem,
|
||||
accountManager: config.AccountManager,
|
||||
DataDir: config.DataDir,
|
||||
version: config.Name, // TODO should separate from Name
|
||||
@ -303,7 +306,7 @@ func (s *Ethereum) StartMining() error {
|
||||
func (s *Ethereum) StopMining() { s.miner.Stop() }
|
||||
func (s *Ethereum) IsMining() bool { return s.miner.Mining() }
|
||||
|
||||
func (s *Ethereum) Logger() logger.LogSystem { return s.logger }
|
||||
// func (s *Ethereum) Logger() logger.LogSystem { return s.logger }
|
||||
func (s *Ethereum) Name() string { return s.net.Name }
|
||||
func (s *Ethereum) AccountManager() *accounts.Manager { return s.accountManager }
|
||||
func (s *Ethereum) ChainManager() *core.ChainManager { return s.chainManager }
|
||||
|
Reference in New Issue
Block a user