1

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

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

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

因此,问题是:

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

1 回答 1

1

我以为我已经用谷歌搜索了足够多的东西,但显然我没有。

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

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

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

于 2015-07-08T15:24:09.007 回答