Ok if you add the following to the below code in socketappender.cpp in the
function I mentioned below then it works fine:
else if (StringHelper::equalsIgnoreCase(option, _T("threshold")))
{
setThreshold(OptionConverter::toLevel(value, Level::ALL));
}
(obv before the last else statement). Then just recompile log4cxx which is
quite quick with only this change and all is good.
I suspect that this is missing elsewhere as well in 0.9.7 at least e.g. I
checked the DailyRollingFileAppender inheriting from FileAppender inheriting
from WriterAppender and none of them set this particular option.
Cheers
Amit
-----Original Message-----
From: Sarna, Amit [mailto:[EMAIL PROTECTED]
Sent: 13 August 2007 10:04
To: 'Log4CXX User'
Subject: RE: Logging levels
Yep using it like this makes more sense, but unfortunately again doesn't work.
I had a quick look at source code (socketappender.cpp) and looks like the
setOption function doesn't take account of the threshold.
void SocketAppender::setOption(const String& option,
const String& value)
{
if (StringHelper::equalsIgnoreCase(option, _T("remotehost")))
{
setRemoteHost(value);
}
else if (StringHelper::equalsIgnoreCase(option, _T("port")))
{
setPort(OptionConverter::toInt(value, DEFAULT_PORT));
}
else if (StringHelper::equalsIgnoreCase(option, _T("locationinfo")))
{
setLocationInfo(OptionConverter::toBoolean(value, false));
}
else if (StringHelper::equalsIgnoreCase(option,
_T("reconnectiondelay")))
{
setReconnectionDelay(OptionConverter::toInt(value,
DEFAULT_RECONNECTION_DELAY));
}
else
{
AppenderSkeleton::setOption(name, value); // This is just an
empty function
}
}
It seems simple enough to add another case to set the threshold variable - I'll
try it out later and get back to the list..
Cheers
Amit
-----Original Message-----
From: Curt Arnold [mailto:[EMAIL PROTECTED]
Sent: 10 August 2007 18:17
To: Log4CXX User
Subject: Re: Logging levels
On Aug 10, 2007, at 9:50 AM, Sarna, Amit wrote:
> Hi guys,
> I've seen a few threads on what I'm about to ask but no success when
> following them. I'd like to split my logging such that one appender
> logs all messages of DEBUG level and above and another logs all
> messages of WARN level and above. My current log4j config file is:
>
> log4j.rootLogger=DEBUG, myappender, SOCK
> log4j.appender.myappender=org.apache.log4j.RollingFileAppender
> log4j.appender.myappender.File=../../log/abc.log
> log4j.appender.myappender.MaxFileSize=100KB
> log4j.appender.myappender.MaxBackupIndex=1
> log4j.appender.myappender.layout=org.apache.log4j.PatternLayout
> log4j.appender.myappender.layout.ConversionPattern=%d %-5p - %m%n
> log4j.appender.SOCK=org.apache.log4j.net.SocketAppender
> log4j.appender.SOCK.RemoteHost=localhost
> log4j.appender.SOCK.Port=9245
> log4j.appender.SOCK.layout.ConversionPattern=%d{%d-%b %H:%M:%S.%J}
> tid[%t] %-5p %l %m%n log4j.appender.SOCK.layout.TimeZone=GB
> log4j.appender.SOCK.LocationInfo=true
> log4j.appender.threshold.SOCK=WARN
> log4j.debug=true
>
>
> So I'm hoping that 'myappender' logs DEBUG and above and SOCK logs
> WARN and above but this doesn't seem to work. Does any body have a
> working example of this I could look at?
>
> I'm using log4cxx 0.9.7 and I need to use with non-XML config.
>
> Many Thanks
> Amit
>
>
You are trying to set the threshold property on the SOCK appender, so the line
should be:
log4j.appender.SOCK.threshold=WARN
Unfortunately, I could not find any unit test in either log4j or log4cxx that
provided a sample configuration file that demonstrated setting the threshold on
an appender.
==============================================================================
Please access the attached hyperlink for an important electronic communications
disclaimer:
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
==============================================================================
==============================================================================
Please access the attached hyperlink for an important electronic communications
disclaimer:
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
==============================================================================