少し前にlog4jにかなり重大な脆弱性が存在することが発覚して、log4jライブラリを脆弱性を対応した最新のバージョンに入れ替えしなければならなくなった人は多いと思います。
私もその対応をしたのですが、そのときに「log4j-api-2.xx.0.jar」と「log4j-core-2.xx.0.jar」のメインのjarファイル以外にもう一つ「log4j-1.2-api-2.xx.0.jar」というライブラリも合わせて交換しました。
実際にライブラリを交換する際には、たいして意識していなかったのですが「log4j-1.2-api-2.xx.0.jar」って結局何の意味があったのか、気になったので今回調べました。
結論から言うと、log4j1.x系で実装されたJavaソースコードでも、実装をLog4j 2に差し替えることができるためのライブラリとのことでした。
なるほど、ソースコードは変えたくないけど、これからは新しいlog4j 2を使いたいといった要望に応えるために、用意されている仕組みのようです。たしかに、Javaソースにはlog4j1.x系のクラスを使っていたのでこのライブラリが必要であったようです。
因みに、「log4j-1.2-api-2.xx.0.jar」のライブラリのみあればOKかというと、もちろんそうではなく、Log4j 2の「log4j-api-2.xx.0.jar」と「log4j-core-2.xx.0.jar」のライブラリは必要になります(クラスパスにないとエラーになります)。
今回はこの辺で失礼いたします。最後までお読みいただきありがとうございました。