Skip to content

Commit 26bb64d

Browse files
jaer-tsunYongli Chen
authored andcommitted
Locking loggers in case of multi-threaded apps. (Azure#171)
1 parent e85ae03 commit 26bb64d

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

log/logger.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"log"
1010
"os"
1111
"path"
12+
"sync"
1213
)
1314

1415
// Log level
@@ -50,6 +51,7 @@ type Logger struct {
5051
maxFileCount int
5152
callCount int
5253
directory string
54+
mutex *sync.Mutex
5355
}
5456

5557
// NewLogger creates a new Logger.
@@ -63,6 +65,7 @@ func NewLogger(name string, level int, target int) *Logger {
6365
logger.maxFileSize = maxLogFileSize
6466
logger.maxFileCount = maxLogFileCount
6567
logger.directory = ""
68+
logger.mutex = &sync.Mutex{}
6669

6770
return &logger
6871
}
@@ -185,13 +188,17 @@ func (logger *Logger) logf(format string, args ...interface{}) {
185188
// Printf logs a formatted string at info level.
186189
func (logger *Logger) Printf(format string, args ...interface{}) {
187190
if logger.level >= LevelInfo {
191+
logger.mutex.Lock()
188192
logger.logf(format, args...)
193+
logger.mutex.Unlock()
189194
}
190195
}
191196

192197
// Debugf logs a formatted string at debug level.
193198
func (logger *Logger) Debugf(format string, args ...interface{}) {
194199
if logger.level >= LevelDebug {
200+
logger.mutex.Lock()
195201
logger.logf(format, args...)
202+
logger.mutex.Unlock()
196203
}
197204
}

log/stdapi.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
package log
55

66
// Standard logger is a pre-defined logger for convenience.
7-
var stdLog *Logger = NewLogger("azure-container-networking", LevelInfo, TargetStderr)
7+
var stdLog = NewLogger("azure-container-networking", LevelInfo, TargetStderr)
88

9-
// Helper functions for the standard logger.
9+
// GetStd - Helper functions for the standard logger.
1010
func GetStd() *Logger {
1111
return stdLog
1212
}

0 commit comments

Comments
 (0)