That's true. However, we have some customized components which uses
commons-logging.

On Tue, Aug 10, 2010 at 5:11 PM, Maarten Bosteels
<[email protected]> wrote:
> Hi
> You don't need slf4j at all to make tomcat 6 use log4j
> See the tomcat docs.
>
> Maarten
>
> 2010/8/10, Tom Liu <[email protected]>:
>> Hi Ceki,
>>
>> I opened the bug here: http://bugzilla.slf4j.org/show_bug.cgi?id=194
>>
>> Thank you very much,
>> Tom
>>
>> On Tue, Aug 10, 2010 at 3:09 PM, Ceki Gulcu <[email protected]> wrote:
>>> Hi Tom,
>>>
>>> Sounds reasonable. Would you open a bug report requesting the change you
>>> describe? Thanks,
>>>
>>> On 10.08.2010 06:38, Tom Liu wrote:
>>>>
>>>> Hi guys,
>>>>
>>>> I think log4j-over-slf4j (as well as jcl bridges) checks circular
>>>> dependency too strict.
>>>> Even when slf4j-log4j12.jar is visible, it does not necessarily mean
>>>> it will be picked up by slf4j-api as the logging backend.
>>>>
>>>> Here is a setup in tomcat 6 demonstrate the issue:
>>>> tomcat container lib contains: jcl-over-slf4j.jar, slf4j-api.jar,
>>>> slf4j-log4j12.jar, log4j.jar
>>>> Webapp WEB-INF/lib contains: log4j.jar, log4j-over-slf4j.jar,
>>>> slf4j-api.jar, logback-core.jar, logback-access.jar.
>>>> What we want to achieve is that tomcat logging (from commons-logging)
>>>> will be routed to log4j and webapp's logging (from log4j) will be
>>>> routed to logback.
>>>> In theory, there will be no circular dependencies in runtime as
>>>> logback is picked up as the logging backend. However, webapp failed to
>>>> start because the "potential" circular dependency is detected.
>>>>
>>>> Is it possible to change the circular dependency detection algorithm
>>>> to test against the actual binding picked up? I did a hack on
>>>> org.apache.log4j.Log4jLoggerFactory which works for me:
>>>> class Log4jLoggerFactory {
>>>> ...
>>>>
>>>> static {
>>>>
>>>>         LoggerFactoryBinder binder = StaticLoggerBinder.getSingleton();
>>>>         if
>>>> ("org.slf4j.impl.Log4jLoggerFactory".equals(binder.getLoggerFactoryClassStr()))
>>>> {
>>>>             String part1 = "Detected both log4j-over-slf4j.jar AND
>>>> slf4j-log4j12.jar on the class path, preempting StackOverflowError.
>>>> REPLACED ";
>>>>             String part2 = "See also " + LOG4J_DELEGATION_LOOP_URL + "
>>>> for more details.";
>>>>
>>>>             Util.reportFailure(part1);
>>>>             Util.reportFailure(part2);
>>>>             throw new IllegalStateException(part1 + part2);
>>>>         }
>>>>
>>>>     }
>>>> ...
>>>>
>>>> }
>>>>
>>>> Thanks,
>>>> Tom
>>>
>>> _______________________________________________
>>> slf4j-user mailing list
>>> [email protected]
>>> http://qos.ch/mailman/listinfo/slf4j-user
>>>
>> _______________________________________________
>> slf4j-user mailing list
>> [email protected]
>> http://qos.ch/mailman/listinfo/slf4j-user
>>
> _______________________________________________
> slf4j-user mailing list
> [email protected]
> http://qos.ch/mailman/listinfo/slf4j-user
_______________________________________________
slf4j-user mailing list
[email protected]
http://qos.ch/mailman/listinfo/slf4j-user

Reply via email to