...
1
6
7 package example
8
9 import (
10 "fmt"
11 "testing"
12
13 "k8s.io/klog/v2"
14 "k8s.io/klog/v2/internal/test"
15 "k8s.io/klog/v2/ktesting"
16 _ "k8s.io/klog/v2/ktesting/init"
17 )
18
19 func TestKlogr(t *testing.T) {
20 logger, _ := ktesting.NewTestContext(t)
21 exampleOutput(logger)
22 }
23
24 type pair struct {
25 a, b int
26 }
27
28 func (p pair) String() string {
29 return fmt.Sprintf("(%d, %d)", p.a, p.b)
30 }
31
32 var _ fmt.Stringer = pair{}
33
34 type err struct {
35 msg string
36 }
37
38 func (e err) Error() string {
39 return "failed: " + e.msg
40 }
41
42 var _ error = err{}
43
44 func exampleOutput(logger klog.Logger) {
45 logger.Info("hello world")
46 logger.Error(err{msg: "some error"}, "failed")
47 logger.V(1).Info("verbosity 1")
48 logger.WithName("main").WithName("helper").Info("with prefix")
49 obj := test.KMetadataMock{Name: "joe", NS: "kube-system"}
50 logger.Info("key/value pairs",
51 "int", 1,
52 "float", 2.0,
53 "pair", pair{a: 1, b: 2},
54 "raw", obj,
55 "kobj", klog.KObj(obj),
56 )
57 logger.V(4).Info("info message level 4")
58 logger.V(5).Info("info message level 5")
59 logger.V(6).Info("info message level 6")
60 }
61
View as plain text