【问题标题】:Access Dancer Log object?访问舞者日志对象?
【发布时间】:2012-03-22 20:13:39
【问题描述】:

通常当使用你调用的舞者时,例如

debug 'foo';

它会记录文本。但我希望能够在不导入舞者语法的对象中记录内容。我想知道是否有办法让舞者把它的日志对象交给我(我假设有一个),这样我就可以使用对象语法调用诸如调试之类的东西,例如

$logger->debug( 'foo' );

【问题讨论】:

    标签: perl object logging dancer


    【解决方案1】:
    use Dancer::Logger::Console;
    
    my $logger = Dancer::Logger::Console->new;
    $logger->debug("Perl Dancer Rocks!");
    

    您可以将Console 记录器替换为您想要的任何其他记录器,例如SyslogConsoleAggregator

    【讨论】:

    • 这通常会返回内部舞者记录器的单例吗?从它的外观我猜是一个新的实例。
    【解决方案2】:

    您可以只导入调试关键字。

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

    这样其他函数不会污染您的命名空间,但您仍将拥有熟悉的 DSL 语法。请参阅https://metacpan.org/module/Dancer#EXPORTS 了解更多信息。

    【讨论】:

    • 这仍然将可能与舞者无关的对象与舞者联系起来。我的对象应该能够在催化剂、舞者、魔力等中工作。
    • 我不确定你所说的“关系对象”是什么意思。它不会将任何对象与任何 AFAIK 相关联。 ':syntax' 选项关闭所有 Dancer 魔法,除了加载配置。
    • 但我不需要舞者配置...我正在编写的对象不一定需要舞者记录器,它需要一个记录器,目前它会被舞者使用所以将它传递给舞者记录器是有意义的。通过 use Dancer ... 我的模块直接依赖于 dancer。
    【解决方案3】:

    我不确定我是否遵循您想要做的事情,如果您想要一个“与 Dancer 无关”的记录器,为什么要使用 Dancer 提供的记录器?

    您当然可以创建一个 Dancer::Logger::Whatever 类的实例,但是我真的不明白这一点。

    为什么不使用真正的独立记录器,例如 Log::Dispatchouli?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多