1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-26 06:21:36 +00:00

duplicate adapter logger bug fixed

This commit is contained in:
JessonChan 2016-03-11 10:12:17 +08:00
parent 22196d7841
commit 4801099675

View File

@ -146,7 +146,18 @@ func (bl *BeeLogger) Async() *BeeLogger {
func (bl *BeeLogger) SetLogger(adapterName string, config string) error { func (bl *BeeLogger) SetLogger(adapterName string, config string) error {
bl.lock.Lock() bl.lock.Lock()
defer bl.lock.Unlock() defer bl.lock.Unlock()
if log, ok := adapters[adapterName]; ok {
for _, l := range bl.outputs {
if l.name == adapterName {
return fmt.Errorf("logs: duplicate adaptername %q (you have set this logger before)", adapterName)
}
}
log, ok := adapters[adapterName]
if !ok {
return fmt.Errorf("logs: unknown adaptername %q (forgotten Register?)", adapterName)
}
lg := log() lg := log()
err := lg.Init(config) err := lg.Init(config)
if err != nil { if err != nil {
@ -154,9 +165,6 @@ func (bl *BeeLogger) SetLogger(adapterName string, config string) error {
return err return err
} }
bl.outputs = append(bl.outputs, &nameLogger{name: adapterName, Logger: lg}) bl.outputs = append(bl.outputs, &nameLogger{name: adapterName, Logger: lg})
} else {
return fmt.Errorf("logs: unknown adaptername %q (forgotten Register?)", adapterName)
}
return nil return nil
} }