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
==============================================================================

Reply via email to