MCPcopy
hub / github.com/grafana/dskit / NewBufferedLogger

Function NewBufferedLogger

log/buffered.go:100–112  ·  view source on GitHub ↗

NewBufferedLogger creates a new BufferedLogger with a configured capacity. Lines are flushed when the context is done, the buffer is full, or the flush period is reached.

(w io.Writer, cap uint32, opts ...BufferedLoggerOption)

Source from the content-addressed store, hash-verified

98// NewBufferedLogger creates a new BufferedLogger with a configured capacity.
99// Lines are flushed when the context is done, the buffer is full, or the flush period is reached.
100func NewBufferedLogger(w io.Writer, cap uint32, opts ...BufferedLoggerOption) *BufferedLogger {
101 l := &BufferedLogger{
102 w: w,
103 buf: newThreadsafeBuffer(bytes.NewBuffer([]byte{})),
104 cap: cap,
105 }
106
107 for _, opt := range opts {
108 opt(l)
109 }
110
111 return l
112}
113
114// threadsafeBuffer wraps the non-threadsafe bytes.Buffer.
115type threadsafeBuffer struct {

Callers 3

BenchmarkBufferedFunction · 0.85
TestBufferedConcurrencyFunction · 0.85
TestOnFlushCallbackFunction · 0.85

Calls 1

newThreadsafeBufferFunction · 0.85

Tested by 3

BenchmarkBufferedFunction · 0.68
TestBufferedConcurrencyFunction · 0.68
TestOnFlushCallbackFunction · 0.68