Logging mechanism

This commit is contained in:
obscuren 2014-06-14 15:44:13 +02:00
parent 63883bf27d
commit 6d52da58d9
2 changed files with 31 additions and 1 deletions

View File

@ -143,12 +143,17 @@ func NewLogger(flag LoggerType, level int) *Logger {
return &Logger{logSys: loggers, logLevel: level} return &Logger{logSys: loggers, logLevel: level}
} }
func (self *Logger) SetLevel(level int) {
self.logLevel = level
}
func (log *Logger) AddLogSystem(logger LogSystem) { func (log *Logger) AddLogSystem(logger LogSystem) {
log.logSys = append(log.logSys, logger) log.logSys = append(log.logSys, logger)
} }
const ( const (
LogLevelDebug = iota LogLevelSystem = iota
LogLevelDebug
LogLevelInfo LogLevelInfo
) )
@ -204,6 +209,26 @@ func (log *Logger) Fatal(v ...interface{}) {
os.Exit(1) os.Exit(1)
} }
func (log *Logger) Println(level int, v ...interface{}) {
if log.logLevel > level {
return
}
for _, logger := range log.logSys {
logger.Println(v...)
}
}
func (log *Logger) Printf(level int, format string, v ...interface{}) {
if log.logLevel > level {
return
}
for _, logger := range log.logSys {
logger.Printf(format, v...)
}
}
type confValue struct { type confValue struct {
value string value string
} }

View File

@ -244,6 +244,8 @@ func (p *Peer) writeMessage(msg *ethwire.Msg) {
} }
} }
ethutil.Config.Log.Println(ethutil.LogLevelSystem, "<=", msg.Type, msg.Data)
err := ethwire.WriteMessage(p.conn, msg) err := ethwire.WriteMessage(p.conn, msg)
if err != nil { if err != nil {
ethutil.Config.Log.Debugln("[PEER] Can't send message:", err) ethutil.Config.Log.Debugln("[PEER] Can't send message:", err)
@ -264,6 +266,7 @@ out:
select { select {
// Main message queue. All outbound messages are processed through here // Main message queue. All outbound messages are processed through here
case msg := <-p.outputQueue: case msg := <-p.outputQueue:
p.writeMessage(msg) p.writeMessage(msg)
p.lastSend = time.Now() p.lastSend = time.Now()
@ -316,6 +319,8 @@ func (p *Peer) HandleInbound() {
ethutil.Config.Log.Debugln(err) ethutil.Config.Log.Debugln(err)
} }
for _, msg := range msgs { for _, msg := range msgs {
ethutil.Config.Log.Println(ethutil.LogLevelSystem, "=>", msg.Type, msg.Data)
switch msg.Type { switch msg.Type {
case ethwire.MsgHandshakeTy: case ethwire.MsgHandshakeTy:
// Version message // Version message