apache / logging-log4j-kotlin

A Kotlin-friendly interface to log against the Log4j API
https://logging.apache.org/log4j/kotlin
Apache License 2.0
45 stars 11 forks source link

Support LogBuilder API in a kotlin-y way #36

Open rocketraman opened 10 months ago

rocketraman commented 10 months ago

The Kotlin API does not have an equivalent to the https://logging.apache.org/log4j/2.x/manual/logbuilder.html.

A Kotlin-y approach may use a DSL rather than a builder. For example, a LoggingScope passed as a lambda receiver could result in an API that could look something like:

logger.atError {
  // `this` here is an instance of `LoggingScope`
  // everything optional except log
  throwable = ...
  marker = ...
  location = ...
  log = ...
}

The standard builder API could also be supported as an alternative for users who prefer it.

See also relevant background discussion about designing a fluent logging API from https://github.com/google/flogger and https://google.github.io/flogger/benefits.