Skip to content
This repository was archived by the owner on Dec 10, 2024. It is now read-only.

Blitz4j at a glance

karthik-vn edited this page Nov 19, 2012 · 24 revisions

What is Blitz4j?

Blitz4j is a logging framework built on top of log4j to reduce multithreaded contention and enable highly scalable logging without affecting application performance characteristics.

At Netflix, Blitz4j is used to log billions of events for monitoring, business intelligence reporting, debugging and other purposes. Blitz4j overcomes traditional log4j bottlenecks and comes built with a highly scalable and customizable asynchronous framework. Blitz4j comes with the ability to convert the existing log4j appenders to use the asynchronous model without changing the existing log4j configurations.

Blitz4j uses archaius (http://www.github.com/Netflix/archaius) that allows log4j dynamic configurations for a server or a group of servers. Blitz4j also tries to mitigate data loss and provides a way to summarize the log information during log storms

History of Blitz4j

At Netflix, log4j has been used as a logging framework for a few years. It had worked fine for us, until the point where there was a real need to log lots of data. When our traffic increased and when the need for per-instance logging went up, log4j's frailties started to get exposed.

Problems with Log4j

  1. Contended Synchronization when getting loggers
  2. Does not take advantage of the concurrent packages.
  3. Contended Synchronization when writing to appenders.
  4. Contention during reconfiguration.
  5. Deadlocks

Blitz4j vs log4j Asynchronous appenders

When should I use Blitz4j?

Why not use LogBack?

Configuring Blitz4j

Blitz4j performance

Clone this wiki locally