forked from LaconicNetwork/kompose
This adds github.com/pkg/errors to glide.yaml followed by glide and glide-vc commands. The github.com/pkg/errors package is currently required mainly for the errors.Wrap() and errors.New() methods, since this lets us to annotate the errors while passing the error message up the call stack.
32 lines
570 B
Go
32 lines
570 B
Go
package logrus
|
|
|
|
import (
|
|
"bufio"
|
|
"io"
|
|
"runtime"
|
|
)
|
|
|
|
func (logger *Logger) Writer() *io.PipeWriter {
|
|
reader, writer := io.Pipe()
|
|
|
|
go logger.writerScanner(reader)
|
|
runtime.SetFinalizer(writer, writerFinalizer)
|
|
|
|
return writer
|
|
}
|
|
|
|
func (logger *Logger) writerScanner(reader *io.PipeReader) {
|
|
scanner := bufio.NewScanner(reader)
|
|
for scanner.Scan() {
|
|
logger.Print(scanner.Text())
|
|
}
|
|
if err := scanner.Err(); err != nil {
|
|
logger.Errorf("Error while reading from Writer: %s", err)
|
|
}
|
|
reader.Close()
|
|
}
|
|
|
|
func writerFinalizer(writer *io.PipeWriter) {
|
|
writer.Close()
|
|
}
|