mirror of https://github.com/sbt/sbt.git
add Logger to Streams
This commit is contained in:
parent
caa655ae06
commit
8f1768d6a8
|
|
@ -26,7 +26,7 @@ trait SingleProject extends Tasked with PrintTask with TaskExtra with Types
|
|||
val context = ReflectiveContext(this, (x: SingleProject) => Some("project")) // TODO: project names
|
||||
val dummies = new Transform.Dummies(In, State, Streams)
|
||||
def name(t: Task[_]): String = context.staticName(t) getOrElse std.Streams.name(t)
|
||||
val injected = new Transform.Injected( input, state, std.Streams(t => streamBase / name(t)) )
|
||||
val injected = new Transform.Injected( input, state, std.Streams(t => streamBase / name(t), (t, writer) => ConsoleLogger() ) )
|
||||
context.forName(input.name) map { t => (t.merge.map(_ => state), Transform(dummies, injected, context) ) }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ sealed trait TaskStreams
|
|||
def binary(sid: String = default): BufferedOutputStream
|
||||
|
||||
// default logger
|
||||
/*val log: Logger
|
||||
def log(sid: String): Logger*/
|
||||
final lazy val log: Logger = log(default)
|
||||
def log(sid: String): Logger
|
||||
|
||||
private[this] def getID(s: Option[String]) = s getOrElse default
|
||||
}
|
||||
|
|
@ -48,13 +48,13 @@ object Streams
|
|||
{
|
||||
private[this] val closeQuietly = (_: Closeable).close()
|
||||
|
||||
def multi[Owner](bases: Owner => File, taskOwner: Task[_] => Option[Owner]): Streams =
|
||||
def multi[Owner](bases: Owner => File, taskOwner: Task[_] => Option[Owner], mkLogger: (Task[_], PrintWriter) => Logger): Streams =
|
||||
{
|
||||
val taskDirectory = (t: Task[_]) => taskOwner(t) map bases getOrElse error("Cannot get streams for task '" + name(t) + "' with no owner.")
|
||||
apply(taskDirectory)
|
||||
apply(taskDirectory, mkLogger)
|
||||
}
|
||||
|
||||
def apply(taskDirectory: Task[_] => File): Streams = new Streams { streams =>
|
||||
def apply(taskDirectory: Task[_] => File, mkLogger: (Task[_], PrintWriter) => Logger): Streams = new Streams { streams =>
|
||||
|
||||
def apply(a: Task[_], update: Boolean): ManagedTaskStreams = new ManagedTaskStreams {
|
||||
private[this] var opened: List[Closeable] = Nil
|
||||
|
|
@ -72,6 +72,8 @@ object Streams
|
|||
def binary(sid: String = default): BufferedOutputStream =
|
||||
make(a, sid)(f => new BufferedOutputStream(new FileOutputStream(f)))
|
||||
|
||||
def log(sid: String): Logger = mkLogger(a, text(sid))
|
||||
|
||||
def make[T <: Closeable](a: Task[_], sid: String)(f: File => T): T = synchronized {
|
||||
checkOpen()
|
||||
val file = taskDirectory(a) / sid
|
||||
|
|
|
|||
Loading…
Reference in New Issue