Skip to content

Commit 24c93ef

Browse files
committed
Updated ScribeJsonSupport to define implementations as a trait for extension and exposed jsonExtras to override resulting JSON (Resolves #564)
1 parent ec5b9a4 commit 24c93ef

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

json/shared/src/main/scala/scribe/json/ScribeJsonSupport.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ trait ScribeJsonSupport[J] {
1616

1717
def logRecord2Json(record: LogRecord): J
1818

19+
def jsonExtras(record: LogRecord, json: J): J = json
20+
1921
def writer(writer: Writer): Writer = new Writer {
2022
override def write(record: LogRecord, output: LogOutput, outputFormat: OutputFormat): Unit = {
2123
val json = logRecord2Json(record)

jsonCirce/shared/src/main/scala/scribe/json/ScribeCirceJsonSupport.scala

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import io.circe.Json.Null
44
import io.circe.syntax.EncoderOps
55
import io.circe.{Json, JsonObject}
66
import perfolation.long2Implicits
7-
import scribe.{LogRecord, lineSeparator}
7+
import scribe.LogRecord
88
import scribe.mdc.MDC
99
import scribe.message.Message
1010
import scribe.throwable.Trace
1111

1212
import io.circe.generic.auto._
1313

14-
object ScribeCirceJsonSupport extends ScribeJsonSupport[Json] {
14+
trait ScribeCirceJsonSupport extends ScribeJsonSupport[Json] {
1515
def json2String(json: Json): String = json.noSpaces
1616

1717
override def logRecord2Json(record: LogRecord): Json = {
@@ -34,7 +34,7 @@ object ScribeCirceJsonSupport extends ScribeJsonSupport[Json] {
3434
case list => list.toVector.asJson
3535
}
3636
val data = MDC.map ++ record.data
37-
JsonObject(
37+
val json = JsonObject(
3838
"level" -> record.level.name.asJson,
3939
"levelValue" -> record.levelValue.asJson,
4040
"message" -> messages,
@@ -59,6 +59,9 @@ object ScribeCirceJsonSupport extends ScribeJsonSupport[Json] {
5959
"timeStamp" -> l.asJson,
6060
"date" -> l.t.F.asJson,
6161
"time" -> s"${l.t.T}.${l.t.L}${l.t.z}".asJson
62-
)
63-
}.asJson
62+
).asJson
63+
jsonExtras(record, json)
64+
}
6465
}
66+
67+
object ScribeCirceJsonSupport extends ScribeCirceJsonSupport

jsonFabric/shared/src/main/scala/scribe/json/ScribeFabricJsonSupport.scala

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import scribe.message.Message
99
import scribe.throwable.{Trace, TraceElement}
1010
import perfolation._
1111

12-
object ScribeFabricJsonSupport extends ScribeJsonSupport[Json] {
12+
trait ScribeFabricJsonSupport extends ScribeJsonSupport[Json] {
1313
private implicit val traceElementRW: RW[TraceElement] = RW.gen
1414
private implicit val traceRW: RW[Trace] = RW.gen
1515

@@ -35,7 +35,7 @@ object ScribeFabricJsonSupport extends ScribeJsonSupport[Json] {
3535
case list => Arr(list.toVector)
3636
}
3737
val data = MDC.map ++ record.data
38-
obj(
38+
val json = obj(
3939
"level" -> record.level.name,
4040
"levelValue" -> record.levelValue,
4141
"message" -> messages,
@@ -61,5 +61,8 @@ object ScribeFabricJsonSupport extends ScribeJsonSupport[Json] {
6161
"date" -> l.t.F,
6262
"time" -> s"${l.t.T}.${l.t.L}${l.t.z}"
6363
)
64+
jsonExtras(record, json)
6465
}
6566
}
67+
68+
object ScribeFabricJsonSupport extends ScribeFabricJsonSupport

0 commit comments

Comments
 (0)