package logrus

import (
	
	
	
)

// Writer at INFO level. See WriterLevel for details.
func ( *Logger) () *io.PipeWriter {
	return .WriterLevel(InfoLevel)
}

// WriterLevel returns an io.Writer that can be used to write arbitrary text to
// the logger at the given log level. Each line written to the writer will be
// printed in the usual way using formatters and hooks. The writer is part of an
// io.Pipe and it is the callers responsibility to close the writer when done.
// This can be used to override the standard library logger easily.
func ( *Logger) ( Level) *io.PipeWriter {
	return NewEntry().WriterLevel()
}

func ( *Entry) () *io.PipeWriter {
	return .WriterLevel(InfoLevel)
}

func ( *Entry) ( Level) *io.PipeWriter {
	,  := io.Pipe()

	var  func( ...interface{})

	switch  {
	case TraceLevel:
		 = .Trace
	case DebugLevel:
		 = .Debug
	case InfoLevel:
		 = .Info
	case WarnLevel:
		 = .Warn
	case ErrorLevel:
		 = .Error
	case FatalLevel:
		 = .Fatal
	case PanicLevel:
		 = .Panic
	default:
		 = .Print
	}

	go .writerScanner(, )
	runtime.SetFinalizer(, writerFinalizer)

	return 
}

func ( *Entry) ( *io.PipeReader,  func( ...interface{})) {
	 := bufio.NewScanner()
	for .Scan() {
		(.Text())
	}
	if  := .Err();  != nil {
		.Errorf("Error while reading from Writer: %s", )
	}
	.Close()
}

func ( *io.PipeWriter) {
	.Close()
}