package buffer

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

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.

Index

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
)

Functions

func PutBuffer

func PutBuffer(b *Buffer)

PutBuffer returns a buffer to the free list.

Types

type Buffer

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

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

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.

Source Files

buffer.go

Version
v2.120.0
Published
Jan 10, 2024
Platform
linux/amd64
Imports
5 packages
Last checked
19 hours ago

Tools for package owners.