Adds a few locks
This commit is contained in:
parent
e6b3497b2b
commit
4cc1baab95
2 changed files with 15 additions and 1 deletions
|
@ -4,9 +4,13 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Logger struct {
|
type Logger struct {
|
||||||
|
// added to avoid concurrent writes
|
||||||
|
sync.Mutex
|
||||||
|
|
||||||
name string
|
name string
|
||||||
level Level
|
level Level
|
||||||
backends []Backend
|
backends []Backend
|
||||||
|
@ -54,6 +58,9 @@ func (l *Logger) AsStdLog(level Level) *log.Logger {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *Logger) Log(level Level, m string) {
|
func (l *Logger) Log(level Level, m string) {
|
||||||
|
l.Lock()
|
||||||
|
defer l.Unlock()
|
||||||
|
|
||||||
r := NewRecord(l.name, level, m)
|
r := NewRecord(l.name, level, m)
|
||||||
for _, backend := range l.backends {
|
for _, backend := range l.backends {
|
||||||
if r.Level >= backend.Level() {
|
if r.Level >= backend.Level() {
|
||||||
|
|
|
@ -4,9 +4,13 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
var loggers map[string]*Logger
|
var (
|
||||||
|
loggers map[string]*Logger
|
||||||
|
lock sync.Mutex
|
||||||
|
)
|
||||||
|
|
||||||
type Level byte
|
type Level byte
|
||||||
|
|
||||||
|
@ -38,6 +42,9 @@ func LevelByName(l string) (Level, error) {
|
||||||
type Formatter func(*Record) string
|
type Formatter func(*Record) string
|
||||||
|
|
||||||
func GetLogger(name string) (l *Logger) {
|
func GetLogger(name string) (l *Logger) {
|
||||||
|
lock.Lock()
|
||||||
|
defer lock.Unlock()
|
||||||
|
|
||||||
if name == "" {
|
if name == "" {
|
||||||
name = "default"
|
name = "default"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue