GitHub user mlangc created a discussion: Call for feedback: I've implemented an AsyncHttpAppender
I've spent a considerable part of my Christmas holidays putting together an [AsyncHttpAppender](https://github.com/mlangc/more-log4j2/blob/async-http-appender/src/main/java/com/github/mlangc/more/log4j2/appenders/AsyncHttpAppender.java#L66) that I want to release in the [more-log4j2](https://mvnrepository.com/artifact/com.github.mlangc/more-log4j2) library that I'm maintaining. My personal use-case is pushing logs to the [Dynatrace Ingest API](https://github.com/mlangc/more-log4j2/tree/async-http-appender?tab=readme-ov-file#Publishing-Logs-To-Dynatrace) without relying on proprietary Java agents or [OpenTelemetry](https://opentelemetry.io/docs/zero-code/java/spring-boot-starter/additional-instrumentations/), but the appender is generic and can be integrated with other log monitoring solutions like [Datadog](https://github.com/mlangc/more-log4j2/tree/async-http-appender?tab=readme-ov-file#Publishing-Logs-To-Datadog) and [Grafana](https://github.com/mlangc/more-log4j2/tree/async-http-appender?tab=readme-ov-file#Publishing-Logs-To-Grafana). In theory, pushing logs to these APIs is also possible with the regular [HttpAppender](https://logging.apache.org/log4j/2.x/manual/appenders/network.html#HttpAppender), however its performance is not acceptable even for toy projects, since logging a few lines per second ties up an entire thread due to the synchronous nature of the `HttpAppender`. Thanks to compression and batching, the `AsyncHttpAppender` can handle log throughputs that are [multiple orders of magnitude higher](https://github.com/mlangc/more-log4j2/tree/async-http-appender?tab=readme-ov-file#performance) than what you can achieve with the regular `HttpAppender`. The implementation features [different strategies to deal with overload situations](https://github.com/mlangc/more-log4j2/tree/async-http-appender?tab=readme-ov-file#what-if-the-backend-is-not-keeping-up), and [retries with exponential backoff](https://github.com/mlangc/more-log4j2/tree/async-http-appender?tab=readme-ov-file#what-if-the-backend-is-unreliable-or-temporary-unavailable). I would like to release this new appender as part of `more-log4j2-2.0.0` in the near future, but before doing so, I want to collect and address any feedback you may have. You can use [the snapshot release](https://central.sonatype.com/repository/maven-snapshots/com/github/mlangc/more-log4j2/1.2.1-SNAPSHOT/more-log4j2-1.2.1-20260104.122111-4.pom) that I've pushed to Maven Central, if you want some hands-on experience without checking out the project locally. GitHub link: https://github.com/apache/logging-log4j2/discussions/4020 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected]
