go-logging
go-logging copied to clipboard
race test failed
package main
import (
"os"
"time"
"github.com/op/go-logging"
)
func main() {
go func() {
test("test1")
}()
test("test2")
time.Sleep(time.Second)
}
func test(name string) {
backend := logging.NewLogBackend(os.Stdout, "", 0)
leveledBackend := logging.AddModuleLevel(backend)
leveledBackend.SetLevel(logging.DEBUG, name)
logging.SetBackend(leveledBackend)
logger := logging.MustGetLogger(name)
logger.Debug("debug")
}
run go run -race main.go, DATA RACE detected:
# go run -race main.go
debug
==================
WARNING: DATA RACE
Write by goroutine 6:
github.com/op/go-logging.SetBackend()
/root/godev/src/github.com/op/go-logging/backend.go:26 +0x24c
main.test()
/root/godev/src/logging/main.go:24 +0x522
main.main.func1()
/root/godev/src/logging/main.go:12 +0x39
Previous write by main goroutine:
github.com/op/go-logging.SetBackend()
/root/godev/src/github.com/op/go-logging/backend.go:26 +0x24c
main.test()
/root/godev/src/logging/main.go:24 +0x522
main.main()
/root/godev/src/logging/main.go:15 +0x51
Goroutine 6 (running) created at:
main.main()
/root/godev/src/logging/main.go:13 +0x38
==================
debug
Found 1 data race(s)
exit status 66