1package logrus_test
2
3import (
4	"os"
5
6	"github.com/sirupsen/logrus"
7)
8
9type DefaultFieldHook struct {
10	GetValue func() string
11}
12
13func (h *DefaultFieldHook) Levels() []logrus.Level {
14	return logrus.AllLevels
15}
16
17func (h *DefaultFieldHook) Fire(e *logrus.Entry) error {
18	e.Data["aDefaultField"] = h.GetValue()
19	return nil
20}
21
22func ExampleDefaultFieldHook() {
23	l := logrus.New()
24	l.Out = os.Stdout
25	l.Formatter = &logrus.TextFormatter{DisableTimestamp: true, DisableColors: true}
26
27	l.AddHook(&DefaultFieldHook{GetValue: func() string { return "with its default value" }})
28	l.Info("first log")
29	// Output:
30	// level=info msg="first log" aDefaultField="with its default value"
31}
32