mirror of
https://github.com/astaxie/beego.git
synced 2024-11-22 14:50:55 +00:00
log default use synchro, and support async
This commit is contained in:
parent
4d70b22f96
commit
9c6775c22c
19
logs/log.go
19
logs/log.go
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user