LogbackからLog4j 2への移行によるアプリケーションのスループット改善 by 磯田 浩靖

JJUG CCC 2021 Fall
採択
2021/11/21 12:55〜
Track C (#jjug_ccc_c)
Video:15min + Live:10min
Intermediate DevOps Standard

LogbackからLog4j 2への移行によるアプリケーションのスループット改善

hiroisojp 磯田 浩靖 hiroisojp
5

プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Cloud / JVM / DevOps / Tools / Community / Others]: Java SE, Serverside
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes

Abstract:
LogbackからLog4j 2への移行検証についてお話します。
私達のシステムでは多くのリクエストを捌く必要がありますが、ログ出力時にアプリケーションのスループットが低下することがありました。
そこで、この課題を解決するためにLog4j 2の検証を行いました。

Log4j 2の非同期ロギングではロックフリーのデータ構造が採用されており、マルチスレッド下においても高いパフォーマンスを出せるように設計されています。
また、Log4j 2のサイトによると、LogbackとLog4j 2のパフォーマンス比較があり、Log4j 2のほうが高いパフォーマンスが出るということが示されています。
実際に私達のシステムでLog4j 2の検証を行ったところ、アプリケーションのスループットが改善しました。

このセッションでは次の内容についてご紹介し、検証内容について共有したいと考えています。

  • Log4j 2の非同期ロギングについて
  • Logback, Log4j 2の差異(JDK Flight Recorder, JDK Mission Controlを用いたグラフ、ログなどで比較)