mlangc / zio-interop-log4j2

ZIO Fiber aware MDC logging for LOG4J2

GitHub

ZIO Interop Log4J2

Latest Release Latest Snapshot

This library provides ZIO fiber aware MDC logging for Log4j 2.

Usage

  1. Add libraryDependencies += "com.github.mlangc" %% "zio-interop-log4j2" % version to your build.sbt
  2. Add -Dlog4j2.threadContextMap=com.github.mlangc.zio.interop.log4j2.FiberAwareThreadContextMap to your JVM startup parameters. If you can't, try to set the log4j2.threadContextMap system property programmatically as early as you can. The property must be set before Log4j2 is initialized.
  3. Integrate com.github.mlangc.zio.interop.log4j2.FiberAwareThreadContextMap.assertInitialized into your initialization code. Fiber aware MDC logging will not work properly without this call.
  4. Use org.slf4j.MDC as you would normally and observe that it now respects fiber boundaries.
  5. If you start getting annoyed by wrapping interactions with MDC in ZIO effects, take a look at slf4zio which ships an MDC convenience wrapper for ZIO called MDZIO.