...

Package buffer

import "k8s.io/klog/v2/internal/buffer"
Overview
Index

Overview ▾

Package buffer provides a cache for byte.Buffer instances that can be reused to avoid frequent allocation and deallocation. It also has utility code for log header formatting that use these buffers.

Variables

var (
    // Pid is inserted into log headers. Can be overridden for tests.
    Pid = os.Getpid()

    // Time, if set, will be used instead of the actual current time.
    Time *time.Time
)

func PutBuffer

func PutBuffer(b *Buffer)

PutBuffer returns a buffer to the free list.

type Buffer

Buffer holds a single byte.Buffer for reuse. The zero value is ready for use. It also provides some helper methods for output formatting.

type Buffer struct {
    bytes.Buffer
    Tmp [64]byte // temporary byte array for creating headers.
}

func GetBuffer

func GetBuffer() *Buffer

GetBuffer returns a new, ready-to-use buffer.

func (*Buffer) FormatHeader

func (buf *Buffer) FormatHeader(s severity.Severity, file string, line int, now time.Time)

FormatHeader formats a log header using the provided file name and line number and writes it into the buffer.

func (*Buffer) SprintHeader

func (buf *Buffer) SprintHeader(s severity.Severity, now time.Time) string

SprintHeader formats a log header and returns a string. This is a simpler version of FormatHeader for use in ktesting.