You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-user@logging.apache.org by Francois MAROT <fr...@laposte.net> on 2006/02/28 12:06:43 UTC

Re: [Fwd: Re: Newbie question]

Hi,
and first of all, thanks for your quick responses.
But I still can't get it to work !     :(
In c++:

    PropertyConfigurator::configure("log4j.properties");
    LoggerPtr fraLogger = Logger::getLogger("fraLogger");

In log4j.properties:

    log4j.rootLogger = DEBUG, ACSALogger
    log4j.appender.ACSALogger = org.apache.log4j.RollingFileAppender
    log4j.appender.ACSALogger.layout = org.apache.log4j.PatternLayout
    log4j.appender.ACSALogger.layout.ConversionPattern=%-4r [%t] %-5p %c
    %x - %m%n
    log4j.appender.ACSALogger.File = ACSALogger.log
    log4j.appender.ACSALogger.MaxFileSize=1KB

    log4j.fraLogger = ERROR, ACSALogger2
    log4j.additivity.fraLogger=false
    log4j.appender.ACSALogger2 = org.apache.log4j.RollingFileAppender
    log4j.appender.ACSALogger2.layout = org.apache.log4j.SimpleLayout
    log4j.appender.ACSALogger2.File = TMP.log

The problem is that everything logged goes to ACSALogger.log and not to 
TMP.log.
TMP.log receives data only if I tell rootlogger to use ACSALogger2 too 
as a logger. The first line becomes :
log4j.rootLogger = DEBUG, ACSALogger,  ACSALogger2.
The point is i'd like to have differents loggers for different parts of 
the software.
Any more advice from you log4cxx users ?

Regards

Francois


Francois MAROT wrote:
>
> ------------------------------------------------------------------------
>
> Subject:
> Re: Newbie question
> From:
> Curt Arnold <ca...@apache.org>
> Date:
> Mon, 27 Feb 2006 14:06:41 -0600
> To:
> Log4CXX User <lo...@logging.apache.org>
>
> To:
> Log4CXX User <lo...@logging.apache.org>
>
>
>
> On Feb 27, 2006, at 9:36 AM, Francois MAROT wrote:
>
>> Hi all,
>>
>> i'm about to implement a logging system and have been experimenting 
>> with log4cxx recently. But i have some problems...
>> The fact is I don't try to do anything very hard, only configuring 
>> properly my output to a desired file.
>> I thought, as i stated in code i wanted to use logger 
>> "log4j.fraLogger", that my logging info would be written
>> in the file named "TMP.log". But it is written in file 
>> "ACSA-log4cxx.log". I thought only rootlogger would
>> write to this file... Am I missing something ?
>>
>
> Looks like two things, one you are logging to "log4j.fraLogger" in the 
> code, but are configuring "fraLogger" in the properties file.  The 
> "log4j." in the properties file just identifies the property as 
> pertaining to log4j configuration and is discarded.  If you change the 
> argument in the getLogger call from "log4j.fraLogger" to "fraLogger", 
> your log requests should go into both ACSA-log4cxx.log and TMP.log.
>
> As mentioned in the previous message, if you do not want messages to 
> go to both files, you need to specify the "additivity" for the 
> fraLogger to false so that it does not pass on the requests to 
> appenders attached to the root.  You would do that by adding the 
> following line to your configuration file.
>
>
> log4j.additivity.fraLogger=false
>

Re: [Fwd: Re: Newbie question]

Posted by Francois MAROT <fr...@laposte.net>.
Hi,

after a long search on the internet, I have managed to do what I wanted: 
define multiple loggers.
If it can help anybody, the solution to my problem was only to write 
this line in log4j.properties:

    log4j.*logger.*fraLogger = ERROR, ACSALogger2

instead of this line:

    log4j.fraLogger = ERROR, ACSALogger2

now, I can have more than one logger each writing to its own file.
Regards

Francois


Francois MAROT wrote:
> Hi,
> and first of all, thanks for your quick responses.
> But I still can't get it to work !     :(
> In c++:
>
>     PropertyConfigurator::configure("log4j.properties");
>     LoggerPtr fraLogger = Logger::getLogger("fraLogger");
>
> In log4j.properties:
>
>     log4j.rootLogger = DEBUG, ACSALogger
>     log4j.appender.ACSALogger = org.apache.log4j.RollingFileAppender
>     log4j.appender.ACSALogger.layout = org.apache.log4j.PatternLayout
>     log4j.appender.ACSALogger.layout.ConversionPattern=%-4r [%t] %-5p
>     %c %x - %m%n
>     log4j.appender.ACSALogger.File = ACSALogger.log
>     log4j.appender.ACSALogger.MaxFileSize=1KB
>
>     log4j.fraLogger = ERROR, ACSALogger2
>     log4j.additivity.fraLogger=false
>     log4j.appender.ACSALogger2 = org.apache.log4j.RollingFileAppender
>     log4j.appender.ACSALogger2.layout = org.apache.log4j.SimpleLayout
>     log4j.appender.ACSALogger2.File = TMP.log
>
> The problem is that everything logged goes to ACSALogger.log and not 
> to TMP.log.
> TMP.log receives data only if I tell rootlogger to use ACSALogger2 too 
> as a logger. The first line becomes :
> log4j.rootLogger = DEBUG, ACSALogger,  ACSALogger2.
> The point is i'd like to have differents loggers for different parts 
> of the software.
> Any more advice from you log4cxx users ?
>
> Regards
>
> Francois
>
>
> Francois MAROT wrote:
>>
>> ------------------------------------------------------------------------
>>
>> Subject:
>> Re: Newbie question
>> From:
>> Curt Arnold <ca...@apache.org>
>> Date:
>> Mon, 27 Feb 2006 14:06:41 -0600
>> To:
>> Log4CXX User <lo...@logging.apache.org>
>>
>> To:
>> Log4CXX User <lo...@logging.apache.org>
>>
>>
>>
>> On Feb 27, 2006, at 9:36 AM, Francois MAROT wrote:
>>
>>> Hi all,
>>>
>>> i'm about to implement a logging system and have been experimenting 
>>> with log4cxx recently. But i have some problems...
>>> The fact is I don't try to do anything very hard, only configuring 
>>> properly my output to a desired file.
>>> I thought, as i stated in code i wanted to use logger 
>>> "log4j.fraLogger", that my logging info would be written
>>> in the file named "TMP.log". But it is written in file 
>>> "ACSA-log4cxx.log". I thought only rootlogger would
>>> write to this file... Am I missing something ?
>>>
>>
>> Looks like two things, one you are logging to "log4j.fraLogger" in 
>> the code, but are configuring "fraLogger" in the properties file.  
>> The "log4j." in the properties file just identifies the property as 
>> pertaining to log4j configuration and is discarded.  If you change 
>> the argument in the getLogger call from "log4j.fraLogger" to 
>> "fraLogger", your log requests should go into both ACSA-log4cxx.log 
>> and TMP.log.
>>
>> As mentioned in the previous message, if you do not want messages to 
>> go to both files, you need to specify the "additivity" for the 
>> fraLogger to false so that it does not pass on the requests to 
>> appenders attached to the root.  You would do that by adding the 
>> following line to your configuration file.
>>
>>
>> log4j.additivity.fraLogger=false
>>