parent
a41e1855ca
commit
e247f30f45
18
log.go
18
log.go
|
@ -4,6 +4,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
"sync"
|
||||||
"text/template"
|
"text/template"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -26,6 +27,8 @@ const (
|
||||||
twarn
|
twarn
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var lock sync.Mutex
|
||||||
|
|
||||||
var PROD = true
|
var PROD = true
|
||||||
var LEVEL = Lerror | Linfo
|
var LEVEL = Lerror | Linfo
|
||||||
|
|
||||||
|
@ -77,6 +80,8 @@ type Logger struct {
|
||||||
system string
|
system string
|
||||||
color bool
|
color bool
|
||||||
|
|
||||||
|
explicit bool
|
||||||
|
|
||||||
err io.Writer
|
err io.Writer
|
||||||
out io.Writer
|
out io.Writer
|
||||||
|
|
||||||
|
@ -133,9 +138,16 @@ func (l *Logger) guessColor() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (l *Logger) SetColor(c bool) {
|
func (l *Logger) SetColor(c bool) {
|
||||||
|
l.explicit = true
|
||||||
l.color = c
|
l.color = c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l *Logger) SetColorAll(c bool) {
|
||||||
|
for _, v := range getAllOffsprings(l) {
|
||||||
|
v.SetColor(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (l *Logger) SetErrOutput(err io.Writer) {
|
func (l *Logger) SetErrOutput(err io.Writer) {
|
||||||
l.err = err
|
l.err = err
|
||||||
}
|
}
|
||||||
|
@ -157,7 +169,9 @@ func (l *Logger) SetOutputAll(out io.Writer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *Logger) Reload() error {
|
func (l *Logger) Reload() error {
|
||||||
l.guessColor()
|
if !l.explicit {
|
||||||
|
l.guessColor()
|
||||||
|
}
|
||||||
return l.ParseTmpl()
|
return l.ParseTmpl()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -233,6 +247,8 @@ func (l *Logger) output(t tout, depth int, stack string, fields H, v ...interfac
|
||||||
Color: l.color,
|
Color: l.color,
|
||||||
Stack: stack,
|
Stack: stack,
|
||||||
}
|
}
|
||||||
|
lock.Lock()
|
||||||
|
defer lock.Unlock()
|
||||||
var err error
|
var err error
|
||||||
switch t {
|
switch t {
|
||||||
case terror:
|
case terror:
|
||||||
|
|
16
log_test.go
16
log_test.go
|
@ -98,6 +98,17 @@ func TestToFile(t *testing.T) {
|
||||||
l.WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf")
|
l.WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf")
|
||||||
l.Info("d", "sdf", "sdfsdf")
|
l.Info("d", "sdf", "sdfsdf")
|
||||||
l.InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf")
|
l.InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf")
|
||||||
|
|
||||||
|
l.SetColor(true)
|
||||||
|
l.Reload()
|
||||||
|
l.Error("d", "sdf", "sdfsdf")
|
||||||
|
l.ErrorF(H{"Test": "set"}, "d", "sdf", "sdfsdf")
|
||||||
|
l.Debug("d", "sdf", "sdfsdf")
|
||||||
|
l.DebugF(H{"Test": "set"}, "d", "sdf", "sdfsdf")
|
||||||
|
l.Warn("d", "sdf", "sdfsdf")
|
||||||
|
l.WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf")
|
||||||
|
l.Info("d", "sdf", "sdfsdf")
|
||||||
|
l.InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestApplyChild(t *testing.T) {
|
func TestApplyChild(t *testing.T) {
|
||||||
|
@ -119,4 +130,9 @@ func TestApplyChild(t *testing.T) {
|
||||||
l1.Info("child1-stdout")
|
l1.Info("child1-stdout")
|
||||||
l2.Info("child2-stdout")
|
l2.Info("child2-stdout")
|
||||||
l3.Info("child3-stdout")
|
l3.Info("child3-stdout")
|
||||||
|
SetColorAll(false)
|
||||||
|
ReloadAll()
|
||||||
|
l1.Info("child1-nocolor")
|
||||||
|
l2.Info("child2-nocolor")
|
||||||
|
l3.Info("child3-nocolor")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue