1
0
mirror of https://github.com/astaxie/beego.git synced 2024-06-02 14:03:28 +00:00

log default use synchro, and support async

This commit is contained in:
astaxie 2015-06-13 00:25:21 +08:00
parent 4d70b22f96
commit 9c6775c22c

View File

@ -92,6 +92,7 @@ type BeeLogger struct {
level int level int
enableFuncCallDepth bool enableFuncCallDepth bool
loggerFuncCallDepth int loggerFuncCallDepth int
asynchronous bool
msg chan *logMsg msg chan *logMsg
outputs map[string]LoggerInterface outputs map[string]LoggerInterface
} }
@ -110,7 +111,11 @@ func NewLogger(channellen int64) *BeeLogger {
bl.loggerFuncCallDepth = 2 bl.loggerFuncCallDepth = 2
bl.msg = make(chan *logMsg, channellen) bl.msg = make(chan *logMsg, channellen)
bl.outputs = make(map[string]LoggerInterface) 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() go bl.startLogger()
return bl return bl
} }
@ -164,7 +169,17 @@ func (bl *BeeLogger) writerMsg(loglevel int, msg string) error {
} else { } else {
lm.msg = msg 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 return nil
} }