On 22 August 2012 21:43, Philippe Mouawad <philippe.moua...@gmail.com> wrote:
> On Wed, Aug 22, 2012 at 7:21 PM, sebb <seb...@gmail.com> wrote:
>
>> On 22 August 2012 17:52, Milamber <milam...@apache.org> wrote:
>> > On Wed, Aug 22, 2012 at 4:34 PM, Philippe Mouawad <
>> > philippe.moua...@gmail.com> wrote:
>> >
>> >> Restarting the discussion about logger.
>> >>
>> >> I agree with sebb java.util.logging is not great compared to
>> slf4j/logback
>> >> , log4j or commons-logging.
>> >>
>> >> My opinion is slf4j/logback would be the best choice as it's:
>> >>
>> >>    - the most up to date
>> >>    - is the next evolution of LOG4J for logback
>> >>    - was build from commons-logging experience for SLF4J
>> >>    - logback seems to have more features than log4j
>> >>
>>
>> I don't see the point of replacing the existing logging.
>> What benefit would we get?
>>
> Does current implementation support MDC or NDC ?

No idea what they are.

> Other features  I see:
>
>    - Parameterized log messages  :
>    http://slf4j.org/faq.html#logging_performance

We already use the if enabled wrappers.

>    - Marker objects : see
>    -
>       
> http://stackoverflow.com/questions/10766411/overriding-the-logging-methods-logger-warn-in-slf4j,
>
>       - http://logback.qos.ch/manual/layouts.html#Evaluators

Do we really need this functionality?
Looks rather complicated to me.

>
> What's wrong with the existing functionality?
>>
> it is based on a retired project (Excalibur). It kind of hurts me.

Irrelevant if it works.

> Not much documentation on web, I had to search last time when implementing
> 41788 and 53261. API is limited compared to Commons-logging, log4j , slf4j

In what way is it limited?
AFAIK, it's similar to commons-logging.

> I remember when starting using jmeter (I knew at that time log4j,
> commons-logging) I had to modify log level somewhere, I search a while
> because it was a new mechanism to learn (had jmeter relied on existing conf
> of log4j or other I would have found this very rapidly, ActiveMQ for
> example uses commons-logging, slf4j and possibly logback).
>
>> Would we lose any functionality by changing?
>>
> I don't think so.
> But maybe you should detail all the features and we could check.

That's quite difficult to do.

>>
>> It took a lot of work to get everything set up properly; and will be a
>> very major undertaking to change everything.
>> It's not just changes to class import statements and creating a
>> different logger.
>> There's documentation, and the way we use properties to control
>> logging different classes and packages.
>> If that changes, it could break some user installations.
>>
>
> I agree it changes but log4j, commons-logging, slf4j are such standard that
> it's very easy to find info, for example look at stackoverflow statistics:
>
>    - http://stackoverflow.com/questions/tagged/slf4j : 390 questions
>    - http://stackoverflow.com/questions/tagged/log4j : 2170 questions
>    - http://stackoverflow.com/questions/tagged/logback : 320 questions
>    - http://stackoverflow.com/questions/tagged/apache-commons-logging : 61
>    questions
>    - logkit, avalon, excalibur : 0 questions
>

So? AFAICT, most of that relates to using and implementing logging,
rather than configuring logging levels, which is the main issue for
end users.

>
> Users will also need to get learn a different way of controlling logging.
>>
>>
> We could rely on underlying product documentation which is quite well known
> (log4j , logback ) instead of creating our own mechanism .
> We could then remove all Logging Configuration paragraph from
> jmeter.properties.
>
>>
>> >
>> > Perhaps, some issue with the logback dual licences (EPL and LGPL). I'm
>> not
>> > sure if we can used the logback with only the choice of EPL licence...
>> >
>> >
>> > The commons-logging and the Log4j are under AL2.0, seems better to use an
>> > ASF product in an ASF product? ;-)
>> >
>> >
>> >
>> >
>> >>
>> >>
>> >> I think we should really remove dependency on Apache Excalibur.
>>
>> We still use parts of Excalibur for JDBC pooling.
>>
>> I don't see the point of pooling if you are testing JDBC; it then
>> becomes as much a test of the pool rather than JDBC.
>>
> Don't understand this
>
>>
>> If we do want to support pooling, it should be selectable.
>> However I don't know if there is a standard Pooling API, so that might
>> not be possible.
>>
>> Why not use commons-dbcp or tomcat-pool for this ?

See separate thread.

>> >>
>> >>
>> >> Regards
>> >>
>> >> Philippe
>> >> // Copying dialog from another thread:
>> >>
>> >> Philippe says
>> >> >> As we are now in these big changes (static final, interface cleanup
>> ...
>> >>  )
>> >> >> Sebb, milamber is it ok for you if I start migration to
>> commons-logging
>> >> ?
>> >> >>
>> >> >
>> >> >
>> >> Milamber says:
>> >> > Why commons-loggings (not updated since 2008)?
>> >>
>> >> Sebb says:
>> >> AIUI it's not been updated since it works; there has been no need to
>> update
>> >> it.
>> >>
>> >> > Log4J ?
>> >>
>> >> > or directly java.util.logging.*?
>> >>
>> >> That's broken, according to what I read.
>> >>
>> >> On Mon, Jan 23, 2012 at 1:39 PM, Philippe Mouawad <
>> >> philippe.moua...@gmail.com> wrote:
>> >>
>> >> > Hello Sebb,
>> >> > My responses below.
>> >> > Regards
>> >> > Philippe
>> >> >
>> >> > On Mon, Jan 23, 2012 at 1:02 PM, sebb <seb...@gmail.com> wrote:
>> >> >
>> >> >> On 23 January 2012 06:49, Philippe Mouawad <
>> philippe.moua...@gmail.com>
>> >> >> wrote:
>> >> >> > Regarding logging,
>> >> >> > It CAN Go fast if we share work and each of us takes one SRC
>> folder.
>> >> >> > It's à matter f search replace for 90%.
>> >> >>
>> >> >> It's still the same amount of work, no matter how many people do it.
>> >> >> [Possibly more, if you allow for co-ordination overheads]
>> >> >>
>> >> >> Generally it's the last 10% that takes all the effort.
>> >> >>
>> >> > => I agree , I volunteer to do it if you agree after release.
>> >> >
>> >> >>
>> >> >> Definitely not something to be started just before a release.
>> >> >>
>> >> >> => It was not my intention, it is just after the release.
>> >> >
>> >> >
>> >> >> Also, we would still need to keep the jars unless we rewrote
>> >> >> OldSaveService - or made it optional.
>> >> >>
>> >> >> >
>> >> >> > Regarding pool i am not sure to  there is an datasourceelemnt That
>> >> has à
>> >> >> > Maxpool property and looking at code it seemed the  excalibur
>> >> datasource
>> >> >> > was using this property.
>> >> >> > Commons jdbc BasicDatasource was looking very close to it.
>> >> >> >
>> >> >> > Regards
>> >> >> > Philippe
>> >> >> > On Monday, January 23, 2012, Anthony Johnson <ans...@gmail.com>
>> >> wrote:
>> >> >> >> On Sun, Jan 22, 2012 at 9:28 PM, sebb <seb...@gmail.com> wrote:
>> >> >> >>> On 23 January 2012 01:46, Anthony Johnson <ans...@gmail.com>
>> wrote:
>> >> >> >>>> On Sun, Jan 22, 2012 at 8:29 PM, sebb <seb...@gmail.com> wrote:
>> >> >> >>>>>
>> >> >> >>>>> On 22 January 2012 13:04, Philippe Mouawad <
>> >> >> philippe.moua...@gmail.com>
>> >> >> > wrote:
>> >> >> >>>>> > Hello,
>> >> >> >>>>> > I noticed there was some plan to remove Excalibur logger
>> >> >> dependency.
>> >> >> >>>>> > What is the new selected component to replace it ?
>> >> >> >>>>> >
>> >> >> >>>>> >   - log4j
>> >> >> >>>>> >   - slf4J+logback
>> >> >> >>>>>
>> >> >> >>>>> Given that the main focus of JMeter is HTTP, and we use Apache
>> >> >> >>>>> HttpClient, if we do replace logging it will be sensible to use
>> >> the
>> >> >> >>>>> same, i.e. Commons Logging.
>> >> >> >>>>>
>> >> >> >>>>> But it is a huge job to do this; every single file that uses
>> >> logging
>> >> >> >>>>> will need to be updated.
>> >> >> >>>>>
>> >> >> >>>>> As well as changing all the documentation, config files etc.
>> >> >> >>>>>
>> >> >> >>>>> >
>> >> >> >>>>> > When do we plan this migration ?
>> >> >> >>>>>
>> >> >> >>>>> Not yet.
>> >> >> >>>>>
>> >> >> >>>>> > Working on 41788
>> >> >> >>>>> > <https://issues.apache.org/bugzilla/show_bug.cgi?id=41788>I
>> >> >> noticed
>> >> >> >>>>> > javadocs for excalibur where no more available on internet.
>> >> >> >>>>> >
>> >> >> >>>>> > I suppose the same question will arise regarding DataBase
>> >> Sampler
>> >> >> > pool.
>> >> >> >>>>> > What are the candidates:
>> >> >> >>>>> >
>> >> >> >>>>> >   - Tomcat JDBC Pool :
>> >> >> >>>>> >   http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html
>> >> >> >>>>> >   - Commons DBCP ?
>> >> >> >>>>>
>> >> >> >>>>> I wonder whether there's really any point supporting database
>> >> >> pooling
>> >> >> >>>>> at all, given that the focus of JMeter is on independent test
>> >> >> threads.
>> >> >> >>>>>
>> >> >> >>>>
>> >> >> >>>> JMeter definitely needs persistent database connections which is
>> >> >> >>>> easily accomplished with database pooling.  JMeter loses
>> usefulness
>> >> >> if
>> >> >> >>>> it has to open a connection at sample time since this is a lot
>> more
>> >> >> >>>> expensive than running optimized SQL.
>> >> >> >>>>
>> >> >> >>>> Also, some database features rely on persistent connections to
>> be
>> >> >> >>>> optimized such as PreparedStatement caches.
>> >> >> >>>
>> >> >> >>> JMeter uses persistent connections; the connection is established
>> >> by:
>> >> >> >>>
>> >> >> >>>
>> >> >> >
>> >> >>
>> >>
>> http://jmeter.apache.org/usermanual/component_reference.html#JDBC_Connection_Configuration
>> >> >> >>>
>> >> >> >>> This is a different matter from sharing connections between
>> threads.
>> >> >> >>>
>> >> >> >>> The per-thread (non-shared) pool is currently implemented as a
>> pool
>> >> >> >>> size of 1 per thread.
>> >> >> >>>
>> >> >> >>
>> >> >> >> The preferred way(per the sarcastic "why use pooling" in the
>> docs:-)
>> >> >> >> is not very nice code-wise.  If I have a 1,000 thread test then I
>> >> will
>> >> >> >> have a 1,000 excaliber thread pool objects in memory and 1,000
>> >> >> >> per-thread poolMap objects.  Getting rid of pooling in JMeter
>> would
>> >> >> >> definitely make this code better.
>> >> >> >>
>> >> >> >> On the other hand, their are nice features from the pooling such
>> as
>> >> >> >> connection testing, keep-alives and such.  Some of those would
>> need
>> >> to
>> >> >> >> be implemented if you guys decided to rip out pooling.
>> >> >> >>
>> >> >> >> Regardless, you responded to my only concern and I learned
>> >> >> >> something(despite having written several JDBC Test Plans in the
>> >> >> >> past:-/)
>> >> >> >>
>> >> >> >>>>> Adding pooling effectively means that JMeter is testing the
>> >> pooling
>> >> >> as
>> >> >> >>>>> well as the database.
>> >> >> >>>>>
>> >> >> >>>>> > I made some Load tests for an ECommerce site comparing the 2
>> >> pools
>> >> >> > and the
>> >> >> >>>>> > first one seems to be a little better performing (specially
>> in
>> >> >> > exhaustion
>> >> >> >>>>> > cases)
>> >> >> >>>>> >
>> >> >> >>>>> > although Commons DBCP quality is great.
>> >> >> >>>>>
>> >> >> >>>>> I don't think database pooling is really necessary for JMeter,
>> so
>> >> >> the
>> >> >> >>>>> performance is not a big issue; tests that want to exercise a
>> >> >> database
>> >> >> >>>>> should not be using pooling - or at least should not be using a
>> >> >> >>>>> pooling solution which is fixed by JMeter.
>> >> >> >>>>>
>> >> >> >>>>> I don't know whether it's possible to create a datasource which
>> >> >> >>>>> includes pooling, if so, then that is the way to go - i.e.
>> support
>> >> >> >>>>> data sources (I don't think we do currently).
>> >> >> >>>>>
>> >> >> >>>>> >
>> >> >> >>>>> > --
>> >> >> >>>>> > Cordialement.
>> >> >> >>>>> > Philippe Mouawad.
>> >> >> >>
>> >> >> >
>> >> >> > --
>> >> >> > Cordialement.
>> >> >> > Philippe Mouawad.
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Cordialement.
>> >> > Philippe Mouawad.
>> >> >
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >> --
>> >> Cordialement.
>> >> Philippe Mouawad.
>> >>
>>
>
>
>
> --
> Cordialement.
> Philippe Mouawad.

Reply via email to