chore: fix data race (#1593)

This commit is contained in:
Kevin Wan
2022-02-28 23:17:51 +08:00
committed by GitHub
parent cf7c7cb392
commit 259a5a13e7
8 changed files with 40 additions and 37 deletions

View File

@@ -33,7 +33,7 @@ const (
)
const (
jsonEncodingType uint32 = iota
jsonEncodingType = iota
plainEncodingType
jsonEncoding = "json"
@@ -75,7 +75,7 @@ var (
timeFormat = "2006-01-02T15:04:05.000Z07:00"
writeConsole bool
logLevel uint32
encoding = jsonEncodingType
encoding uint32 = jsonEncodingType
// use uint32 for atomic operations
disableStat uint32
infoLog io.WriteCloser
@@ -137,9 +137,9 @@ func SetUp(c LogConf) error {
}
switch c.Encoding {
case plainEncoding:
setEncoding(plainEncodingType)
atomic.StoreUint32(&encoding, plainEncodingType)
default:
setEncoding(jsonEncodingType)
atomic.StoreUint32(&encoding, jsonEncodingType)
}
switch c.Mode {
@@ -424,7 +424,7 @@ func infoTextSync(msg string) {
}
func outputAny(writer io.Writer, level string, val interface{}) {
switch encoding {
switch atomic.LoadUint32(&encoding) {
case plainEncodingType:
writePlainAny(writer, level, val)
default:
@@ -438,7 +438,7 @@ func outputAny(writer io.Writer, level string, val interface{}) {
}
func outputText(writer io.Writer, level, msg string) {
switch encoding {
switch atomic.LoadUint32(&encoding) {
case plainEncodingType:
writePlainText(writer, level, msg)
default:
@@ -666,7 +666,3 @@ func (lw logWriter) Write(data []byte) (int, error) {
lw.logger.Print(string(data))
return len(data), nil
}
func setEncoding(encodingType uint32) {
atomic.StoreUint32(&encoding, encodingType)
}