I am not so experienced in the java logging libraries world. I started using hibernate and then saw I needed to include apache commons logging library and sl4j library. The actual logging library is log4j - so I included that library too.
After reading about apache commons logging and sl4j libs, I understand that they both represent an abstraction layer for logging with another library (log4j in my case).
Why are 2 abstraction levels needed ?