并发读nil错针的问题
This commit is contained in:
parent
3c03b5c497
commit
cd85fd66ff
18
log.go
18
log.go
@ -14,6 +14,7 @@ var envkey = "CENTER_RUNMODE"
|
||||
type Logger struct {
|
||||
Lable string
|
||||
*logs.BeeLogger
|
||||
lock sync.RWMutex
|
||||
}
|
||||
|
||||
func (self *Logger) SetAdapter(level Level, adapter Adapter) *Logger {
|
||||
@ -34,17 +35,16 @@ func (self *Logger) DropAdapter(adapter Adapter) *Logger {
|
||||
return self
|
||||
}
|
||||
|
||||
func New(label string, channelLens ...int64) (l *Logger, loaded bool) {
|
||||
func newLogger(label string, channelLens ...int64) (l *Logger, loaded bool) {
|
||||
var channellens int64
|
||||
var tmp interface{}
|
||||
|
||||
tmp, loaded = loggers.LoadOrStore(label, new(Logger))
|
||||
l = tmp.(*Logger)
|
||||
if len(channelLens) > 0 {
|
||||
channellens = channelLens[0]
|
||||
}
|
||||
|
||||
if !loaded {
|
||||
tmp, loaded = loggers.LoadOrStore(label, func() *Logger {
|
||||
l := &Logger{BeeLogger: logs.NewLogger(channellens)}
|
||||
l.Lable = label
|
||||
l.BeeLogger = logs.NewLogger(channellens)
|
||||
l.BeeLogger.Lable = label
|
||||
@ -52,10 +52,17 @@ func New(label string, channelLens ...int64) (l *Logger, loaded bool) {
|
||||
l.SetPrefix(fmt.Sprintf("[env:%s logger:%s]", os.Getenv(envkey), label))
|
||||
l.EnableFuncCallDepth(true)
|
||||
l.SetLogFuncCallDepth(2)
|
||||
}
|
||||
return l
|
||||
}())
|
||||
|
||||
l = tmp.(*Logger)
|
||||
return
|
||||
}
|
||||
|
||||
func New(label string, channelLens ...int64) (l *Logger, loaded bool) {
|
||||
return newLogger(label, channelLens...)
|
||||
}
|
||||
|
||||
func Get(label string, channelLens ...int64) (l *Logger) {
|
||||
var filelevel Level = LevelInfo
|
||||
var loaded bool
|
||||
@ -78,6 +85,7 @@ func GetEs(label string, channelLens ...int64) (l *Logger) {
|
||||
|
||||
if l, loaded = New(label, channelLens...); !loaded {
|
||||
l.SetAdapter(filelevel, AdapterFile).SetAdapter(LevelAll, AdapterConsole).SetAdapter(filelevel, AdapterElasticSearch)
|
||||
l.lock.Unlock()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
13
log_test.go
13
log_test.go
@ -59,3 +59,16 @@ func TestDropAdapter(t *testing.T) {
|
||||
Debug(errors.New("he hello"))
|
||||
CloseAll()
|
||||
}
|
||||
|
||||
func TestNew(t *testing.T) {
|
||||
for i := 1; i < 10; i++ {
|
||||
go func(i int) {
|
||||
GetEs("ok").Debug("%d", i)
|
||||
time.Sleep(1 * time.Second)
|
||||
}(i)
|
||||
}
|
||||
|
||||
for i := 1; i < 10; i++ {
|
||||
GetEs("ok").Debug("aaaaaa%d", i)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user