[email protected]
[Top] [All Lists]

Re: Add appender programmatically

Subject: Re: Add appender programmatically
From: Christian Grobmeier
Date: Wed, 14 Apr 2010 17:08:03 +0200
Hm

I think I know the problem. Its because you first need to configure
the appenders and then the loggers. Otherwise the references are not
set. This is also true for property files in general in log4php. First
appenders, then loggers.

In your case - I am not sure if there is a workaround for this because
you configuration is mixed. You probably can try it out with putting
the rootLogger defintion on the bottom of your property file or
assigning the appender before calling configure(). i am not sure if it
helps.

There is already an issue in Jira which addresses this

Christian


2010/4/14 Miquel Canes <[email protected]>:
> Hello,
> It doesn't work.
>
> Logger::configure(dirname(__FILE__) . '/../log4php.properties');
>
> $logger = Logger::getRootLogger();
>
> $appender = new LoggerAppenderFile("programmatically");
> $layout = new LoggerLayoutPattern("[%p] %t %c - %m%n");
>
> $appender->setLayout($layout);
> $appender->setFileName("programmatically.log");
> $appender->setAppend(true);
> $appender->setThreshold("ALL");
> $logger->addAppender($appender);
>
> echo $logger->isInfoEnabled() . "\n";
>
> $allappenders = $logger->getAllAppenders();
> foreach ($allappenders as $nappender){
> Â Â Â Âecho $nappender->getName()."\n";
> }
>
> $logger->info("info text");
>
> With this code it write:
> 1
> stdout
> R
> programmatically
>
>
> I'm using a config file too and the file appender defined on it works.
>
> log4php.properties content:
>
> #R - Default Log file appender.
> log4php.rootLogger=all, stdout, R
>
> log4php.appender.stdout=LoggerAppenderConsole
> log4php.appender.stdout.layout=LoggerLayoutPattern
>
> # Pattern to output the caller's file name and line number.
> #log4php.appender.stdout.layout.ConversionPattern=[%p] %t %c - %m%n
>
> log4php.appender.R=LoggerAppenderRollingFile
> log4php.appender.R.File=testrollingappender.log
>
> log4php.appender.R.MaxFileSize=100KB
> # Keep one backup file
> log4php.appender.R.MaxBackupIndex=1
>
> log4php.appender.R.layout=LoggerLayoutPattern
> log4php.appender.R.layout.ConversionPattern=[%p] %t %c - %m%n
>
>
> Maybe, a programmatically appender cannot be added if a configure file is 
> used?
> But it does not make any sense.
>
> Thanks,
> Miquel
>
>
> On Wednesday 14 April 2010 16:23:59 Christian Grobmeier wrote:
>> Hello,
>>
>> whats returned if you do:
>>
>> echo $logger->isInfoEnabled();
>>
>> My guess is that info level is not enabled for the root logger
>>
>> Also you might need to set a threshhold for your appender:
>> $appender->setThreshold($threshhold);
>>
>> which is in fact a LoggerLevel. If you use ALL, you outputing all
>>
>> Pls let me know if that worked for you
>>
>> Christian
>>
>> 2010/4/13 Miquel Canes <[email protected]>:
>> > Hello,
>> >
>> > I'm trying to add a file appender programmatically.
>> >
>> > I'm using this piece of code
>> >
>> > $logger = Logger::getRootLogger();
>> >
>> > $appender = new LoggerAppenderFile("programmatically");
>> > $layout = new LoggerLayoutPattern("[%p] %t %c - %m%n");
>> >
>> > $appender->setLayout($layout);
>> > $appender->setFileName("programmatically.log");
>> > $appender->setAppend(true);
>> > $logger->addAppender($appender);
>> >
>> > $allappenders = $logger->getAllAppenders();
>> > foreach ($allappenders as $nappender){
>> > Â Â Â Âecho $nappender->getName()."\n";
>> > }
>> >
>> > $logger->info("info text");
>> >
>> >
>> >
>> > It show the new appender when he print all the appenders but it doesn't
>> > create the new log file.
>> >
>> > How can I add a new file appender to the logger?
>> >
>> > Thanks,
>> > Miquel
>> >
>> > *Advertencia legal: en virtud de lo establecido en la Ley OrgÃnica
>> > 15/1999 de ProtecciÃn de Datos de CarÃcter Personal, le informamos de
>> > que los datos personales que pueda facilitarnos se incorporaran a un
>> > fichero automatizado titularidad de CAST INFO, S.A. con la finalidad de
>> > gestionar la relaciÃn negocial que nos vincula. Podrà revocar su
>> > consentimiento al tratamiento de los datos, asà como ejercer sus
>> > derechos de acceso, rectificaciÃn, cancelaciÃn u oposiciÃn dirigiÃndose
>> > por escrito a CAST INFO domiciliada en C/ Tuset 23, 1Â -- 08006
>> > Barcelona, o a la direcciÃn de correo electrÃnico [email protected]
>> >
>> > Este mensaje y los ficheros anexos que pueda contener son confidenciales,
>> > pueden contener informaciÃn sometida a secreto profesional y se dirige
>> > exclusivamente a su destinatario. Si ha recibido este mensaje por error
>> > o tiene conocimiento del mismo por cualquier motivo, le rogamos que nos
>> > lo comunique inmediatamente por este mismo medio y se abstenga de
>> > utilizarlo, reproducirlo, alterarlo, archivarlo o comunicarlo a
>> > terceros. El emisor no se responsabiliza de posibles perjuicios
>> > derivados de la captura, incorporaciones de virus o cualesquiera otras
>> > manipulaciones efectuadas por terceros.
>> >
>> > Antes de imprimir este e-mail piense bien si es necesario hacerlo.
>>
>> *Advertencia legal: en virtud de lo establecido en la Ley Orgïnica 15/1999
>> de Protecciïn de Datos de Carïcter Personal, le informamos de que los
>> datos personales que pueda facilitarnos se incorporaran a un fichero
>> automatizado titularidad de CAST INFO, S.A. con la finalidad de gestionar
>> la relaciïn negocial que nos vincula. Podrï revocar su consentimiento al
>> tratamiento de los datos, asï como ejercer sus derechos de acceso,
>> rectificaciïn, cancelaciïn u oposiciïn dirigiïndose por escrito a CAST
>> INFO domiciliada en C/ Tuset 23, 1ï -- 08006 Barcelona, o a la direcciïn
>> de correo electrïnico [email protected]
>>
>> Este mensaje y los ficheros anexos que pueda contener son confidenciales,
>> pueden contener informaciïn sometida a secreto profesional y se dirige
>> exclusivamente a su destinatario. Si ha recibido este mensaje por error o
>> tiene conocimiento del mismo por cualquier motivo, le rogamos que nos lo
>> comunique inmediatamente por este mismo medio y se abstenga de utilizarlo,
>> reproducirlo, alterarlo, archivarlo o comunicarlo a terceros. El emisor no
>> se responsabiliza de posibles perjuicios derivados de la captura,
>> incorporaciones de virus o cualesquiera otras manipulaciones efectuadas
>> por terceros.
>>
>> Antes de imprimir este e-mail piense bien si es necesario hacerlo.
>

<Prev in Thread] Current Thread [Next in Thread>