Catalyst Log4perl:从app config配置配置文件位置

时间:2015-07-08 14:32:54

标签: perl logging configuration catalyst log4perl

在Catalyst应用程序中,我需要指定Log4perl的配置文件位置。我能找到的所有例子都表明我应该从代码中做到这一点。但是,我希望能够在app配置文件中指定它。这将允许我为不同的环境使用不同的日志配置,并从单个文件管理所有这些。我还希望能够从app配置文件中设置日志级别。

但是,似乎没有记录从app配置文件配置记录器的方法。我尝试了多种语法变体,但没有一种被Catalyst接受。也无法从MyApp.pm(主应用程序模块)设置正确的配置文件名,因为在运行模块代码时配置尚不可用。

调试记录器初始化代码也没有帮助。我现在考虑的唯一真正的方法是require来自MyApp.pm的配置文件,其中包括必要的配置。

问题是:

  1. 有没有办法从Catalyst配置文件中指定Log4perl配置文件位置?
  2. 有没有办法从配置文件中指定日志级别?

1 个答案:

答案 0 :(得分:1)

我以为我已经足够google了,但显然我没有。

__PACKAGE__->setup();
__PACKAGE__->log(Log::Log4perl::Catalyst->new(__PACKAGE__->path_to(__PACKAGE__->config->{Log}->{config_file})->stringify));

(ref http://www.gossamer-threads.com/lists/catalyst/users/31271)。

至于日志级别:它们是在实际的Log4perl配置文件中定义的。

相关问题