Rich, sbt. API, , , , sbt .
logManager
, extraLoggers
(API , ).
sbt 0.13.x
. BufferedLogger
, , , ConsoleLogger
:
logManager := LogManager.withScreenLogger { (_, state) =>
val console = ConsoleLogger(state.globalLogging.console)
new BufferedLogger(console) {
val project = projectID.value.name
override def log(level: Level.Value, message: => String): Unit =
console.log(level, s"[$project] $message")
}
}
sbt 1.0.x
API , . log4j Appender
, , . sbt.internal
, , , , .. , , ConsoleAppender
, - :
logManager := LogManager.defaultManager(
ConsoleOut.printStreamOut(new PrintStream(System.out) {
val project = projectID.value.name
override def println(str: String): Unit = {
val (lvl, msg) = str.span(_ != ']')
super.println(s"$lvl] [$project$msg")
}
}))
, , println
print
.
, log4j .