Re: [Log4cplus-devel] No Support for Threshold in AsyncAppender
Logging Framework for C++
Brought to you by:
wilx
|
From: Václav Z. <vha...@gm...> - 2014-03-11 17:33:54
|
On 03/11/2014 11:06 AM, Markus von Arx wrote:
> Hi
>
> Is there a reason why the AsyncAppender properties constructor
> [AsyncAppender::AsyncAppender (helpers::Properties const & props)] does
> not call the base class properties constructor? I see that there is some
> tuff in the Appender base class properties constructor (e.g. the
> "layout" property) that is unnecessary for the AsyncAppender, but other
> stuff (e.g. "filters." and "Threshold") would also make sense for the
> AsyncAppender.
>
> I'm asking because this is why AsyncAppender does not support the
> Threshold configuration attribute. I think supporting thresholds (and
> also filters) would be very useful for the AsyncAppender because it
> could greatly reduce the number of log messages that are passed through
> the QueueThread if the AsyncAppender could discard most messages directly.
>
> If this is not intentional, I'd like to ask for a patch/bugfix to enable
> Threshold configuration for the AsyncAppender.
>
> Btw: I patched AsyncAppender myself to add Threshold support. Because I
> don't know why AsyncAppender properties constructor does not call the
> base class properties constructor, I added my code at the end of the
> AsyncAppender properties constructor, just before the call to
> [init_queue_thread (queue_len);]. I basically copy-pasted code from the
> Appender base class. Work's fine. Here's my code in case you find it useful:
>
> if (props.exists(LOG4CPLUS_TEXT("Threshold"))) {
> tstring tmp = props.getProperty(LOG4CPLUS_TEXT("Threshold"));
> tmp = log4cplus::helpers::toUpper(tmp);
> threshold = log4cplus::getLogLevelManager().fromString(tmp);
> }
I guess threshold processing could be useful. Feel free to create a bug
report to remind me or send a patch.
--
VZ
|