通常在使用你调用的舞者时,例如
debug 'foo';
它会记录文本。但我希望能够在不导入舞者语法的对象中记录内容。我想知道是否有办法让舞者把它的日志对象交给我(我假设有一个),这样我就可以使用对象语法调用诸如调试之类的东西,例如
$logger->debug( 'foo' );
use Dancer::Logger::Console;
my $logger = Dancer::Logger::Console->new;
$logger->debug("Perl Dancer Rocks!");
您可以将Console
记录器替换为您想要的任何其他记录器,例如Syslog或ConsoleAggregator
我不确定我是否遵循您想要做的事情,如果您想要一个“与 Dancer 无关”的记录器,为什么要使用 Dancer 提供的记录器?
您当然可以创建一个 Dancer::Logger::Whatever 类的实例,但是,我真的不明白这一点。
为什么不使用真正的独立记录器,例如 Log::Dispatchouli?
您可以只导入调试关键字。
use Dancer qw(:syntax debug);
debug 'foo';
这样,其余函数就不会污染您的命名空间,但您仍将拥有熟悉的 DSL 语法。有关更多信息,请参阅https://metacpan.org/module/Dancer#EXPORTS。