Last change
on this file since 70 was 67, checked in by Izuru Yakumo, 23 months ago |
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@…>
|
File size:
663 bytes
|
Line | |
---|
1 | package logrus
|
---|
2 |
|
---|
3 | import (
|
---|
4 | "bytes"
|
---|
5 | "sync"
|
---|
6 | )
|
---|
7 |
|
---|
8 | var (
|
---|
9 | bufferPool BufferPool
|
---|
10 | )
|
---|
11 |
|
---|
12 | type BufferPool interface {
|
---|
13 | Put(*bytes.Buffer)
|
---|
14 | Get() *bytes.Buffer
|
---|
15 | }
|
---|
16 |
|
---|
17 | type defaultPool struct {
|
---|
18 | pool *sync.Pool
|
---|
19 | }
|
---|
20 |
|
---|
21 | func (p *defaultPool) Put(buf *bytes.Buffer) {
|
---|
22 | p.pool.Put(buf)
|
---|
23 | }
|
---|
24 |
|
---|
25 | func (p *defaultPool) Get() *bytes.Buffer {
|
---|
26 | return p.pool.Get().(*bytes.Buffer)
|
---|
27 | }
|
---|
28 |
|
---|
29 | // SetBufferPool allows to replace the default logrus buffer pool
|
---|
30 | // to better meets the specific needs of an application.
|
---|
31 | func SetBufferPool(bp BufferPool) {
|
---|
32 | bufferPool = bp
|
---|
33 | }
|
---|
34 |
|
---|
35 | func init() {
|
---|
36 | SetBufferPool(&defaultPool{
|
---|
37 | pool: &sync.Pool{
|
---|
38 | New: func() interface{} {
|
---|
39 | return new(bytes.Buffer)
|
---|
40 | },
|
---|
41 | },
|
---|
42 | })
|
---|
43 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.