Monix
Module slog4s-monix
provides basic integration with monix effect system. It
leverages TaskLocal
for context propagation.
slf4j example
This example demonstrates how to make an slf4j specific instance of LoggingContext
and LoggerFactory
backed by monix’s TaskLocal
.
import monix.eval._
import slog4s._
import slog4s.shared._
import slog4s.monix._
import slog4s.slf4j._
Slf4jFactory[Task].makeFromBuilder(MonixContextRuntimeBuilder)
// res0: Task[LoggingRuntime[Task]] = Map(
// Map(
// ContextSwitch(
// Eval(monix.eval.TaskLocal$$$Lambda$8061/0x00000008025f7b10@5bd13960),
// monix.eval.TaskLocal$$$Lambda$8060/0x00000008025f7558@2c63d803,
// null
// ),
// slog4s.monix.MonixContextRuntime$$$Lambda$8062/0x00000008025f2000@5a6749a4,
// StackTrace(
// List(
// monix.eval.internal.TaskTracing$.buildFrame(TaskTracing.scala:52),
// monix.eval.internal.TaskTracing$.buildCachedFrame(TaskTracing.scala:43),
// monix.eval.internal.TaskTracing$.cached(TaskTracing.scala:38),
// monix.eval.Task.map(Task.scala:2027),
// slog4s.monix.MonixContextRuntime$.make(MonixContextRuntime.scala:17),
// slog4s.monix.MonixContextRuntimeBuilder$.make(MonixContextRuntimeBuilder.scala:9),
// slog4s.monix.MonixContextRuntimeBuilder$.make(MonixContextRuntimeBuilder.scala:6),
// slog4s.slf4j.Slf4jFactory$Slf4jFactoryBuilder.makeFromBuilder(Slf4jFactory.scala:52),
// repl.MdocSession$MdocApp.<init>(monix.md:23),
// repl.MdocSession$.app(monix.md:3),
// mdoc.internal.document.DocumentBuilder$$doc$.$anonfun$build$2(DocumentBuilder.scala:89),
// scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23),
// scala.util.DynamicVariable.withValue(DynamicVariable.scala:62),
// scala.Console$.withErr(Console.scala:196),
// mdoc.internal.document.DocumentBuilder$$doc$.$anonfun$build$1(DocumentBuilder.scala:89),
// scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23),
// scala.util.DynamicVariable.withValue(DynamicVariable.scala:62),
// scala.Console$.withOut(Console.scala:167),
// mdoc.internal.document.DocumentBuilder$$doc$.build(DocumentBuilder.scala:88),
// mdoc.internal.markdown.MarkdownBuilder$.$anonfun$buildDocument$2(MarkdownBuilder.scala:47),
// mdoc.internal.markdown.MarkdownBuilder$$anon$1.run(MarkdownBuilder.scala:104)
// )
// )
// ),
// slog4s.slf4j.Slf4jFactory$Slf4jFactoryBuilder$$Lambda$8063/0x00000008025f2cc0@268fa0ce,
// StackTrace(
// List(
// monix.eval.internal.TaskTracing$.buildFrame(TaskTracing.scala:52),
// monix.eval.internal.TaskTracing$.buildCachedFrame(TaskTracing.scala:43),
// monix.eval.internal.TaskTracing$.cached(TaskTracing.scala:38),
// ...