2012-03-22 13 views
8

Normalmente cuando se utiliza bailarina de llamar, por ejemploAcceso Dancer Log object?

debug 'foo'; 

y se registrará el texto. Pero quiero poder registrar cosas en un objeto que no importe la sintaxis del bailarín. Me pregunto si hay una forma de lograr que la bailarina me entregue es un objeto de registro (supongo que hay uno) para que pueda llamar cosas como la depuración usando una sintaxis de objeto, p.

$logger->debug('foo'); 

Respuesta

2
use Dancer::Logger::Console; 

my $logger = Dancer::Logger::Console->new; 
$logger->debug("Perl Dancer Rocks!"); 

Puede reemplazar el registrador Console con cualquier otro registro prefieres como Syslog o ConsoleAggregator

+0

¿Esto normalmente devuelve un singleton del registrador dancer interno? por lo que parece, supongo que una nueva instancia. – xenoterracide

+0

Sí, el código anterior arroja una nueva instancia. – KnightHacker

0

Puede importar sólo la palabra clave de depuración.

use Dancer qw(:syntax debug); 
debug 'foo'; 

De esta manera el resto de las funciones que no se va a contaminar el espacio de nombres, pero todavía tendrá la sintaxis DSL familiar. Vea https://metacpan.org/module/Dancer#EXPORTS para más información.

+0

esto todavía ata objetos que pueden no tener nada que ver con bailarín con bailarín. Mi objeto debería ser capaz de trabajar en catalizador, bailarín, mojo, etc. – xenoterracide

+0

No estoy seguro de lo que quieres decir con "ata objetos". No ata ningún objeto a nada AFAIK. La opción ': sintaxis' desactiva toda la magia de Dancer, excepto para cargar la configuración. – Naveed

+0

pero no necesito la configuración del bailarín ... el objeto que estoy escribiendo no necesita necesariamente el registrador bailarín, necesita un registrador, y actualmente se estaría acostumbrando con la bailarina, así que tiene sentido pasarlo el registrador bailarín. al hacer 'use Dancer ...' mi módulo se vuelve dependiente del bailarín directamente. – xenoterracide

0

No estoy seguro de seguir lo que quieres hacer, si quieres un registrador "que no tenga nada que ver con Dancer", ¿por qué quieres el que Dancer ofrece?

Por supuesto, puede crear una instancia de una clase Dancer :: Logger :: Whatever, pero luego, realmente no veo el punto.

¿Por qué no utilizar un registrador autónomo real como Log :: Dispatchouli, por ejemplo?