To give a little history, we had lots of users who complained about this -
they  *really* don't want us to ship log4j config files with our release. It
caused them endless pain trying to sort out classpath order with a whole
bundle of 3rd party libaries.

Marnie

On Tue, Sep 22, 2009 at 2:58 PM, Rajith Attapattu <rajit...@gmail.com>wrote:

> On Tue, Sep 22, 2009 at 9:46 AM, Martin Ritchie <ritch...@apache.org>
> wrote:
> > 2009/9/22 Rajith Attapattu <rajit...@gmail.com>:
> >> Martin,
> >>
> >> IMO our releases should have a sensible default logging level and is
> >> something that most users expect.
> >> So I don't think we should be asking users to set
> >> -Dlog4j.configuration=client.log4j
> >>
> >> However I agree we could use a log4j.properties in our client instead
> >> of a log4j.xml (all though this sounds more like a hack to me as this
> >> is nothing more than making use of a backwards compatibility feature
> >> of log4j)
> >
> > I wasn't suggesting that we rename it log4j.properties. I don't think
> > we should include any log4j.* files in any of our jars, broker
> > included.
>
> Disagree. By default we should not be doing debug logging !!!
> It really affects performance and most of the time the end users don't
> know what's the reason.
> For Qpid users performance is paramount and when potential users
> evaluate us we are at a disadvantage bcos out of the box we suck due
> to excessive logging. IMO this is not acceptable and have heard
> complaints about this from many users.
>
> We need to make the clients as easy to work with as possible and out
> of the box our clients should perform reasonably well.
>
> >> I am also not sure about having the log4j.properties in the common
> module.
> >>
> >> I recognize the issue of having a conflict in case the user tries to
> >> bundle his own log4j.xml in a jar without using an explicit path.
> >> Log4j really sucks. I am not sure why it defaults to debug in the first
> place :)
> >
> > Better than none IMHO.
> >
> >> Anyways would it be acceptable for you if we remove the
> >> log4j.properties from the common (provided it is not used anywhere)
> >> and then put that in the client module? Sorry IMO the existing
> >> client.log4j is not a proper solution.
> >
> > If you want to include a log4j.xml I don't really have an issue with
> > that as long as it is not in our jars. When it is in the jar then it
> > basically down to your classpath what logging you get, and that isn't
> > something that end users always have control over. Sure they should
> > call their logging something else and not log4j.xml but who are we to
> > dictate how users configure their logging. By having a log4j.xml in
> > our classes we are demanding that they have control over their
> > classpath or use a name that is not log4j.xml.
> >
> > Take a look at Commons they don't provide logging configuration as
> > that is not hard to add to your application configuration.
> >        <logger name="org.apache.commons">
> >          <level value="WARN"/>
> >        </logger>
> >
> > I really don't see that Qpid should be any different. Shipping logging
> > is nice for the examples and I beleive the example.jar does have
> > logging defined in it. Including default logging in our jars I would
> > say would be more of a nightmare for our end users.
> >
> > The client logging actually uses slf4j so seems even more of an odd
> > fit to include a log4j configuration.
>
> In our releases we ship the log4j adapter as the default binding for
> slf4j. If thats the case then we need to fix the log4j config.
>
> > Cheers
> > Martin
> >
> >> Regards,
> >>
> >> Rajith
> >>
> >> On Tue, Sep 22, 2009 at 6:42 AM, Martin Ritchie <ritch...@apache.org>
> wrote:
> >>> Rajith,
> >>>
> >>> One of the reasons we do not currently have a log4j.xml file in the
> >>> client package is that all our users will pick this up.
> >>> As you say on QPID-2113 Log4j will scan the classpath looking for
> >>> log4j.xml then log4j.properties. If it finds one then it will use it.
> >>> I'm also not convinced we should have the log4j.properties in common
> >>> as log4j can default to that. IIRC the common default used to be used
> >>> by our tests. Our systests now use their own configuration and so the
> >>> common one can probably be removed.
> >>>
> >>> Users should be given assistence on configuring their log4j but we
> >>> should not bundle a log4j.* in our jars as that will make their
> >>> debugging very difficult. Log4j debug will show it is using a
> >>> log4j.xml file but not which jar it was loaded from. If your users
> >>> bundle all their application files in to a jar, including their log4j
> >>> configuration then you are relying on the classpath to select the
> >>> log4j.* file to use.
> >>>
> >>> If users are having difficulty with excessive DEBUG messages then I
> >>> would suggest that we simply need to advertise the client.log4j file
> >>> that we ship better.
> >>> Asking users to set -Dlog4j.configuration=client.log4j to get our
> >>> default logging is much easier to explain IMHO than explaining why a
> >>> users log4j.xml configuration file is not working.
> >>>
> >>> Regards
> >>>
> >>> Martin
> >>>
> >>>
> >>> 2009/9/22  <raj...@apache.org>:
> >>>> Author: rajith
> >>>> Date: Tue Sep 22 00:13:05 2009
> >>>> New Revision: 817457
> >>>>
> >>>> URL: http://svn.apache.org/viewvc?rev=817457&view=rev
> >>>> Log:
> >>>> This is a fix for QPID-2113
> >>>> I didn't meddle with the existing log4j.properties file present in the
> common module as it maybe used in the broker.
> >>>> However a cursory glance  at the etc directory revealed that the the
> broker too has a log4j.xml file.
> >>>>
> >>>> So perhaps the log4j.properties files in the common module is not
> really needed.
> >>>> (The settings given i the log4j.xml under the client module could be
> overriden by explicitly specifying a log4.xml file using -Dlog.configuration
> property)
> >>>>
> >>>> Added:
> >>>>    qpid/trunk/qpid/java/client/src/main/java/log4j.xml
> >>>>
> >>>> Added: qpid/trunk/qpid/java/client/src/main/java/log4j.xml
> >>>> URL:
> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/log4j.xml?rev=817457&view=auto
> >>>>
> ==============================================================================
> >>>> --- qpid/trunk/qpid/java/client/src/main/java/log4j.xml (added)
> >>>> +++ qpid/trunk/qpid/java/client/src/main/java/log4j.xml Tue Sep 22
> 00:13:05 2009
> >>>> @@ -0,0 +1,36 @@
> >>>> +<!--
> >>>> +
> >>>> + -
> >>>> + - Licensed to the Apache Software Foundation (ASF) under one
> >>>> + - or more contributor license agreements.  See the NOTICE file
> >>>> + - distributed with this work for additional information
> >>>> + - regarding copyright ownership.  The ASF licenses this file
> >>>> + - to you under the Apache License, Version 2.0 (the
> >>>> + - "License"); you may not use this file except in compliance
> >>>> + - with the License.  You may obtain a copy of the License at
> >>>> + -
> >>>> + -   http://www.apache.org/licenses/LICENSE-2.0
> >>>> + -
> >>>> + - Unless required by applicable law or agreed to in writing,
> >>>> + - software distributed under the License is distributed on an
> >>>> + - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> >>>> + - KIND, either express or implied.  See the License for the
> >>>> + - specific language governing permissions and limitations
> >>>> + - under the License.
> >>>> + -
> >>>> +-->
> >>>> +
> >>>> +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";>
> >>>> +  <appender name="console" class="org.apache.log4j.ConsoleAppender">
> >>>> +     <param name="Target" value="System.out"/>
> >>>> +     <layout class="org.apache.log4j.PatternLayout">
> >>>> +           <param name="ConversionPattern" value="%-5p %c{1} -
> %m%n"/>
> >>>> +     </layout>
> >>>> +  </appender>
> >>>> +
> >>>> +  <logger name="org.apache.qpid">
> >>>> +    <level value="warn"/>
> >>>> +    <appender-ref ref="console" />
> >>>> +  </logger>
> >>>> +
> >>>> +</log4j:configuration>
> >>>>
> >>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> Apache Qpid - AMQP Messaging Implementation
> >>>> Project:      http://qpid.apache.org
> >>>> Use/Interact: mailto:commits-subscr...@qpid.apache.org
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Martin Ritchie
> >>>
> >>> ---------------------------------------------------------------------
> >>> Apache Qpid - AMQP Messaging Implementation
> >>> Project:      http://qpid.apache.org
> >>> Use/Interact: mailto:dev-subscr...@qpid.apache.org
> >>>
> >>>
> >>
> >>
> >>
> >> --
> >> Regards,
> >>
> >> Rajith Attapattu
> >> Red Hat
> >> http://rajith.2rlabs.com/
> >>
> >> ---------------------------------------------------------------------
> >> Apache Qpid - AMQP Messaging Implementation
> >> Project:      http://qpid.apache.org
> >> Use/Interact: mailto:dev-subscr...@qpid.apache.org
> >>
> >>
> >
> >
> >
> > --
> > Martin Ritchie
> >
> > ---------------------------------------------------------------------
> > Apache Qpid - AMQP Messaging Implementation
> > Project:      http://qpid.apache.org
> > Use/Interact: mailto:dev-subscr...@qpid.apache.org
> >
> >
>
>
>
> --
>  Regards,
>
> Rajith Attapattu
> Red Hat
> http://rajith.2rlabs.com/
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:dev-subscr...@qpid.apache.org
>
>

Reply via email to