On 7/20/14, 7:54 AM, Phil Steitz wrote:
> On 7/19/14, 5:45 PM, Gary Gregory wrote:
>> I just had a case today actually, where I had to unroll PoolUtils.prefill
>> and add logging before each call to addObject().
> Why?
>
> Nine times out of ten, when you think you need logging when using
> [pool], you can get what you need by instrumenting *your* factory. 
> In pool2, you also have all of the lifecycle stuff in the
> PooledObjects and the JMX instrumentation.
>
>>  Quite a shame to be forced
>> to do that because pool does not log. In the end, this helped me debug my
>> problem but now, I'm leave the code unrolled of course. IMO, pool is a
>> mid-level component that should log; and do so with Log4j 2.
> If [pool] is midlevel, what exactly is low-level?  Pool is depended
> on by lots of projects for a pretty simple, low-level function and
> it has no dependencies itself.  Performance and lightweight
> deployment are important.  In 2.0, we have added good JMX
> instrumentation and I think with the right listeners, we should be
> able to handle everything but the few internal corner cases like
> OOMEs that write to System.err in the current code.  Adding a
> logging dependency just for these seems a shame to me.   If we
> decide we have to add something, it should be commons-logging, for
> consistency with [dbcp] and for the same reasons that choice was
> made [1].  I would really like to avoid it, if possible, though. 
>
> [1] http://markmail.org/images/permalink.gif

Oops! should be
[1] http://markmail.org/message/j2vmk4uidb3uuv6k
>
> Phil
>> Gary
>>
>>
>> On Sat, Jul 19, 2014 at 6:35 PM, Phil Steitz <phil.ste...@gmail.com> wrote:
>>
>>> On 7/18/14, 2:18 PM, Anthony Communier wrote:
>>>> Hello,
>>>>
>>>> There are some parts of the code that use printStackTrace in order to
>>> show
>>>> errors. It means that it's difficult to have control on how log will be
>>>> produced. Those stacks will mainly go to application server logs and not
>>>> directly into application logs if an application server is used (like
>>>> tomcat, Jboss, ..). That's why I suggest to use logging API, like other
>>>> libraries
>>>>
>>>> I have posted an issue in Jira POOL-266 (
>>>> https://issues.apache.org/jira/browse/POOL-266). Phil Steitz added a
>>>> comment on the issue (Today 21:1)
>>>>
>>>> "The reason that we don't use a logging API is to avoid introducing a
>>>> dependency. If we do go that route, we should be consistent with DBCP and
>>>> use commons-logging. I am not sure we really want to go this way,
>>> though. I
>>>> am more inclined to support the suggestion in POOL-267. It would be
>>> better
>>>> to discuss these things on the commons dev mailing list."
>>> Unfortunately, the POOL-267 approach works only for the abandoned
>>> instance tracking part.  I had forgotten that we have in fact added
>>> some printStackTraces for errors (sort of extreme cases, but
>>> still...) in 2.x.  We need a solution for these as well.  See [1]
>>> for previous discussion of this topic.
>>>
>>> Now that we cut 2.x releases, we obviously have to think about
>>> compatibility.  I think the listeners stuff should be able to be
>>> done compatibly; but adding a dependency is probably not something
>>> we want to do in a dot release.
>>>
>>> What would be great would be a way to add listeners / configuration
>>> options that would make it possible for users to pipe trace info to
>>> whatever persistence mechanisms they want.  We have talked about
>>> this in the past, but never settled on an approach.  Again, see
>>> [1].  I tend to agree with the sentiment that a low-level component
>>> like [pool] should emit very little, ideally nothing, in terms of
>>> logging, but provide good access to the information needed by
>>> components up the stack to handle and report errors and gather
>>> diagnostic information.
>>>
>>> Phil
>>>
>>> [1] http://markmail.org/message/zuufedzkfx62v5eq
>>>> Regards,
>>>>
>>>> Anthony Communier
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>
>>>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to