log4cxx configuration...

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

log4cxx configuration...

Kendal Montgomery
I'm curious if anyone else has tried or has issues with configuring
logging levels for specific loggers in a log4cxx.xml file?  I have the
following log4cxx.xml file:

<?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
     <!-- Output the log message to system console.
      -->
     <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
         <param name="Target" value="System.out"/>
         <layout class="org.apache.log4j.PatternLayout">
             <param name="ConversionPattern" value="%d{ISO8601} %-5p
[%t] %c{2} - %m%n" />
         </layout>
     </appender>

     <root>
         <level value="INFO" />
         <appender-ref ref="CONSOLE"/>
     </root>

     <!--
     <category name="Outstation.Messaging">
         <priority value ="DEBUG" />
     </category>
     -->
     <logger name="Outstation.Messaging">
         <level value="DEBUG" />
     </logger>

     <logger name="Outstation.Messaging.TestHandler">
         <level value="DEBUG" />
     </logger>

</log4j:configuration>

I have a logger configured in my code with the name
"Outstation.Messaging.TestHandler". I'm used to using log4j and if I
configured it this way, all messages that did not have a specific
priority set would be logged at level INFO, but with this configuration,
anything with Outstation.Messaging or lower should be logged at level
DEBUG, and specifically the logger i have defined in my code that I
mention above should log DEBUG level messages to the console.  However,
this is not happening; I get nothing but INFO all around.  If I change
the root logger level to DEBUG, I get everything logging at DEBUG level,
but finer grained logger configuration doesn't seem to work.  Does
log4cxx not use hierarchical logger configuration separated by a period
like java?

Any ideas?  I'm using 0.10.0.

Thanks in advance.

Kendal.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: log4cxx configuration...

Jacob L. Anawalt-2
On 4/9/2015 1:42 PM, Kendal Montgomery wrote:
> I'm curious if anyone else has tried or has issues with configuring logging
> levels for specific loggers in a log4cxx.xml file?

I use an xml configuration file and at times configure different levels for
specific loggers in the hierarchy.

> I have a logger configured in my code with the name
> "Outstation.Messaging.TestHandler".

Like this?

#include <log4cxx/logger.h>

int main(int argc, char* argv[]) {
        log4cxx::LoggerPtr
logger(log4cxx::Logger::getLogger("Outstation.Messaging.TestHandler"));
        LOG4CXX_DEBUG(logger,"Testing");

        return 0;
}

It appeared to work for me using the log4cxx.xml you had in the email.

2015-04-09 16:05:48,057 DEBUG [0xb7227710] Messaging.TestHandler - Testing

> Does log4cxx not use hierarchical logger configuration separated by a
> period like java?
>

It does.

> Any ideas?  I'm using 0.10.0.
>

Same. Maybe you're not using the configuration you think you are. Try enabling
debug in the configuration or tweaking the ConversionPattern to make sure it's
the source of your configuration. Also have you verified this with a small program?

<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">

--
Jacob Anawalt
Gecko Software, Inc.
[hidden email]
435-752-8026
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: log4cxx configuration...

Kendal Montgomery
Thank you for the suggestions.  I figured out my problem by turning on
the debugging. I was trying to figure out how to do the equivalent of
starting the a JVM with -DLOG4J.DEBUG=true, and I totally forgot you
could add that to the configuration file.  I had a very silly type-o.

Thanks once again for the help!

Kendal

On 4/9/15 6:18 PM, Jacob L. Anawalt wrote:

> On 4/9/2015 1:42 PM, Kendal Montgomery wrote:
>> I'm curious if anyone else has tried or has issues with configuring
>> logging
>> levels for specific loggers in a log4cxx.xml file?
>
> I use an xml configuration file and at times configure different
> levels for specific loggers in the hierarchy.
>
>> I have a logger configured in my code with the name
>> "Outstation.Messaging.TestHandler".
>
> Like this?
>
> #include <log4cxx/logger.h>
>
> int main(int argc, char* argv[]) {
>     log4cxx::LoggerPtr
> logger(log4cxx::Logger::getLogger("Outstation.Messaging.TestHandler"));
>     LOG4CXX_DEBUG(logger,"Testing");
>
>     return 0;
> }
>
> It appeared to work for me using the log4cxx.xml you had in the email.
>
> 2015-04-09 16:05:48,057 DEBUG [0xb7227710] Messaging.TestHandler -
> Testing
>
>> Does log4cxx not use hierarchical logger configuration separated by a
>> period like java?
>>
>
> It does.
>
>> Any ideas?  I'm using 0.10.0.
>>
>
> Same. Maybe you're not using the configuration you think you are. Try
> enabling debug in the configuration or tweaking the ConversionPattern
> to make sure it's the source of your configuration. Also have you
> verified this with a small program?
>
> <log4j:configuration debug="true"
> xmlns:log4j="http://jakarta.apache.org/log4j/">
>

Loading...