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] =
|
def objectEventToLines(oe: ObjectEvent[_]): Vector[String] =
|
||||||
{
|
{
|
||||||
val tag = oe.tag
|
val contentType = oe.contentType
|
||||||
LogExchange.stringCodec[AnyRef](tag) match {
|
LogExchange.stringCodec[AnyRef](contentType) match {
|
||||||
case Some(codec) => codec.showLines(oe.message.asInstanceOf[AnyRef]).toVector
|
case Some(codec) => codec.showLines(oe.message.asInstanceOf[AnyRef]).toVector
|
||||||
case _ => Vector(oe.message.toString)
|
case _ => Vector(oe.message.toString)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ class ManagedLogger(
|
||||||
val tag = StringTypeTag[A]
|
val tag = StringTypeTag[A]
|
||||||
LogExchange.getOrElseUpdateJsonCodec(tag.key, implicitly[JsonFormat[A]])
|
LogExchange.getOrElseUpdateJsonCodec(tag.key, implicitly[JsonFormat[A]])
|
||||||
// println("logEvent " + tag.key)
|
// 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(
|
xlogger.log(
|
||||||
ConsoleAppender.toXLevel(level),
|
ConsoleAppender.toXLevel(level),
|
||||||
new ObjectMessage(entry)
|
new ObjectMessage(entry)
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,27 @@ package util
|
||||||
|
|
||||||
import sbt.util.Level
|
import sbt.util.Level
|
||||||
import sjsonnew.JsonFormat
|
import sjsonnew.JsonFormat
|
||||||
|
import sjsonnew.support.scalajson.unsafe.Converter
|
||||||
|
import scala.json.ast.unsafe.JValue
|
||||||
|
|
||||||
final class ObjectEvent[A](
|
final class ObjectEvent[A](
|
||||||
val level: Level.Value,
|
val level: Level.Value,
|
||||||
val message: A,
|
val message: A,
|
||||||
val channelName: Option[String],
|
val channelName: Option[String],
|
||||||
val execId: Option[String],
|
val execId: Option[String],
|
||||||
val tag: String
|
val contentType: String,
|
||||||
|
val json: JValue
|
||||||
) extends Serializable {
|
) 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