dogger

Форк
0
/
exported.go 
102 строки · 1.7 Кб
1
package dogger
2

3
import (
4
	"context"
5
	"github.com/nikwo/dogger/format"
6
	"io"
7
	"os"
8

9
	"github.com/nikwo/dogger/level"
10
)
11

12
func WithContext(ctx context.Context) Logger {
13
	l := createChildLogger(ctx, level.TRACE)
14
	return l
15
}
16

17
func WithFields(entry string, value interface{}) Logger {
18
	l := createChildLogger(context.Background(), level.TRACE)
19
	l.fields = make(map[string]interface{})
20
	l.fields[entry] = value
21
	return l
22
}
23

24
func Trace(input interface{}) {
25
	l := createChildLogger(context.Background(), level.TRACE)
26
	if !l.acceptedLevel(level.TRACE) {
27
		return
28
	}
29

30
	l.formOutput(input)
31
	l.flush()
32
}
33

34
func Debug(input interface{}) {
35
	l := createChildLogger(context.Background(), level.DEBUG)
36
	if !l.acceptedLevel(level.DEBUG) {
37
		return
38
	}
39

40
	l.formOutput(input)
41
	l.flush()
42
}
43

44
func Info(input interface{}) {
45
	l := createChildLogger(context.Background(), level.INFO)
46
	if !l.acceptedLevel(level.INFO) {
47
		return
48
	}
49

50
	l.formOutput(input)
51
	l.flush()
52
}
53

54
func Warn(input interface{}) {
55
	l := createChildLogger(context.Background(), level.WARN)
56
	if !l.acceptedLevel(level.WARN) {
57
		return
58
	}
59

60
	l.formOutput(input)
61
	l.flush()
62
}
63

64
func Error(input interface{}) {
65
	l := createChildLogger(context.Background(), level.ERROR)
66
	if !l.acceptedLevel(level.ERROR) {
67
		return
68
	}
69

70
	l.formOutput(input)
71
	l.flush()
72
}
73

74
func SetLevel(level level.Level) {
75
	lockIO()
76
	defer unlockIO()
77
	log.lvl = level
78
}
79

80
func SetWriter(customWriter io.Writer) {
81
	lockIO()
82
	defer unlockIO()
83
	writer = customWriter
84
}
85

86
func SetFormatter(formatter format.Format) {
87
	lockIO()
88
	defer unlockIO()
89
	log.formatter = formatter
90
}
91

92
func ExportDefaultLogger() Logger {
93
	return log
94
}
95

96
func init() {
97
	log = &logger{
98
		lvl:       level.TRACE,
99
		formatter: format.DefaultFormatter(),
100
	}
101
	writer = os.Stdout
102
}
103

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.