Apache Commons Logging
This page summarizes the issues noted on discussion Log4j vs. JSR47 loggers for Higgins components. This issue was first noted in doing some work with the IdAS component.
It was found that using log4j will have some limitations:
- Say an existing software uses JSR47 logging framework and they plan to use IdAS API in one of their component. They will niether prefer to maintain two logging frameworks simultaneously to use IdAS API nor will they will prefer to move to log4j if they plan to use IdAS API. Administering two logging mechanisms in one software solution will be not a good idea. Also if the software is a large code base , its not possible to move from one existing logging frame work to Log4J.
- Loggers as choosen based on performance, internationalization flexibility , better features and so on , but this way the user will have no choice but stick to log4j even if its a good logging toolkit.
- Many organizations will have their own logging framework or they will have some standard to use a specific logging framework . So using IdAS API based on Log4J may not be possible for them. Similarly there can be many such limitation which needs to be identified.
To over come such issues, it is possible to implement logging using one of the following ways to help avoid such issues mentioned above.
- Replace Log4J with JSR47 (preferrable as in many areas JSR47/Apache Commons Logging is the preferred logger compared to Log4J)
- Write a wrapper logging framework which can be either configured for Log4J and JSR47
It was noted that Apache Commons Logging and SLF4J are conceptually the same thing. To address this it was decided to standardize on Apache Commons Logging for all Higgins Components and change the components that are currently using log4j.
Components and Tickets
The specific list of components that use Log4j and need to be changed to use Apache Commons Logging include the following:
- org.eclipse.higgins.deployment.idas.basic - 234969 - DONE for M2
- org.eclipse.higgins.icard.provider.securestorage.test - 234970 - M3 candidate
- org.eclipse.higgins.idas.cp.inmem - 234971 - DONE for M2
- org.eclipse.higgins.idas.cp.jndi - 234972 - DONE for M2
- org.eclipse.higgins.idas.cp.jspolicy - 234973 - DONE for M2
- org.eclipse.higgins.idas.cp.xmlfile - 234974 - DONE for M2
- org.eclipse.higgins.idas.spi - 234975 - DONE for M2
- org.eclipse.higgins.sts.binding.axis1x.service - 234976 - M3 candidate
- org.eclipse.higgins.sts.client.samples - 235013 - M3 candidate
- org.eclipse.higgins.sts.identitymixertoken - 235030 - M3 candidate
- org.eclipse.higgins.util.idas.cp - 235032 - DONE for M2
- org.eclipse.higgins.util.jscript - 235033 - DONE for M2