...

Source file src/k8s.io/klog/v2/ktesting/example/example_test.go

Documentation: k8s.io/klog/v2/ktesting/example

     1  /*
     2  Copyright 2021 The Kubernetes Authors.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     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" // add command line flags
    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