mirror of https://github.com/sbt/sbt.git
Store JValue into ObjectEvent
This commit is contained in:
parent
e21c78ebb0
commit
1dab826ffd
|
|
@ -263,8 +263,8 @@ class ConsoleAppender private[ConsoleAppender] (
|
|||
}
|
||||
def objectEventToLines(oe: ObjectEvent[_]): Vector[String] =
|
||||
{
|
||||
val tag = oe.tag
|
||||
LogExchange.stringCodec[AnyRef](tag) match {
|
||||
val contentType = oe.contentType
|
||||
LogExchange.stringCodec[AnyRef](contentType) match {
|
||||
case Some(codec) => codec.showLines(oe.message.asInstanceOf[AnyRef]).toVector
|
||||
case _ => Vector(oe.message.toString)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ class ManagedLogger(
|
|||
val tag = StringTypeTag[A]
|
||||
LogExchange.getOrElseUpdateJsonCodec(tag.key, implicitly[JsonFormat[A]])
|
||||
// println("logEvent " + tag.key)
|
||||
val entry: ObjectEvent[A] = new ObjectEvent(level, v, channelName, execId, tag.key)
|
||||
val entry: ObjectEvent[A] = ObjectEvent(level, v, channelName, execId, tag.key)
|
||||
xlogger.log(
|
||||
ConsoleAppender.toXLevel(level),
|
||||
new ObjectMessage(entry)
|
||||
|
|
|
|||
|
|
@ -4,12 +4,27 @@ package util
|
|||
|
||||
import sbt.util.Level
|
||||
import sjsonnew.JsonFormat
|
||||
import sjsonnew.support.scalajson.unsafe.Converter
|
||||
import scala.json.ast.unsafe.JValue
|
||||
|
||||
final class ObjectEvent[A](
|
||||
val level: Level.Value,
|
||||
val message: A,
|
||||
val channelName: Option[String],
|
||||
val execId: Option[String],
|
||||
val tag: String
|
||||
val contentType: String,
|
||||
val json: JValue
|
||||
) extends Serializable {
|
||||
}
|
||||
|
||||
object ObjectEvent {
|
||||
def apply[A: JsonFormat](
|
||||
level: Level.Value,
|
||||
message: A,
|
||||
channelName: Option[String],
|
||||
execId: Option[String],
|
||||
contentType: String
|
||||
): ObjectEvent[A] =
|
||||
new ObjectEvent(level, message, channelName, execId, contentType,
|
||||
Converter.toJsonUnsafe(message))
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue