mirror of https://github.com/sirupsen/logrus.git
This commit is contained in:
parent
85981c0459
commit
2840389b1a
|
@ -387,6 +387,13 @@ func (logger *Logger) SetFormatter(formatter Formatter) {
|
|||
logger.Formatter = formatter
|
||||
}
|
||||
|
||||
// Output returns the IO writer for this logger in a concurrency safe manner.
|
||||
func (logger *Logger) Output() io.Writer {
|
||||
logger.mu.Lock()
|
||||
defer logger.mu.Unlock()
|
||||
return logger.Out
|
||||
}
|
||||
|
||||
// SetOutput sets the logger output.
|
||||
func (logger *Logger) SetOutput(output io.Writer) {
|
||||
logger.mu.Lock()
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sync"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
@ -70,7 +71,7 @@ func TestWarninglnNotEqualToWarning(t *testing.T) {
|
|||
|
||||
type testBufferPool struct {
|
||||
buffers []*bytes.Buffer
|
||||
get int
|
||||
get int
|
||||
}
|
||||
|
||||
func (p *testBufferPool) Get() *bytes.Buffer {
|
||||
|
@ -95,3 +96,23 @@ func TestLogger_SetBufferPool(t *testing.T) {
|
|||
assert.Equal(t, pool.get, 1, "Logger.SetBufferPool(): The BufferPool.Get() must be called")
|
||||
assert.Len(t, pool.buffers, 1, "Logger.SetBufferPool(): The BufferPool.Put() must be called")
|
||||
}
|
||||
|
||||
func TestOutputRace(t *testing.T) {
|
||||
l := New()
|
||||
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
_ = l.Output()
|
||||
}()
|
||||
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
out := &bytes.Buffer{}
|
||||
l.SetOutput(out)
|
||||
}()
|
||||
|
||||
wg.Wait()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue