Commit 9c6775c2 authored by astaxie's avatar astaxie

log default use synchro, and support async

parent 4d70b22f
......@@ -92,6 +92,7 @@ type BeeLogger struct {
level int
enableFuncCallDepth bool
loggerFuncCallDepth int
asynchronous bool
msg chan *logMsg
outputs map[string]LoggerInterface
}
......@@ -110,7 +111,11 @@ func NewLogger(channellen int64) *BeeLogger {
bl.loggerFuncCallDepth = 2
bl.msg = make(chan *logMsg, channellen)
bl.outputs = make(map[string]LoggerInterface)
//bl.SetLogger("console", "") // default output to console
return bl
}
func (bl *BeeLogger) Async() *BeeLogger {
bl.asynchronous = true
go bl.startLogger()
return bl
}
......@@ -164,7 +169,17 @@ func (bl *BeeLogger) writerMsg(loglevel int, msg string) error {
} else {
lm.msg = msg
}
bl.msg <- lm
if bl.asynchronous {
bl.msg <- lm
} else {
for name, l := range bl.outputs {
err := l.WriteMsg(lm.msg, lm.level)
if err != nil {
fmt.Println("unable to WriteMsg to adapter:", name, err)
return err
}
}
}
return nil
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment