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)
| 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. |
| 100 | func 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. |
| 115 | type threadsafeBuffer struct { |