在Catalyst应用程序中,我需要指定Log4perl的配置文件位置。我能找到的所有例子都表明我应该从代码中做到这一点。但是,我希望能够在app配置文件中指定它。这将允许我为不同的环境使用不同的日志配置,并从单个文件管理所有这些。我还希望能够从app配置文件中设置日志级别。
但是,似乎没有记录从app配置文件配置记录器的方法。我尝试了多种语法变体,但没有一种被Catalyst接受。也无法从MyApp.pm(主应用程序模块)设置正确的配置文件名,因为在运行模块代码时配置尚不可用。
调试记录器初始化代码也没有帮助。我现在考虑的唯一真正的方法是require
来自MyApp.pm的配置文件,其中包括必要的配置。
问题是:
答案 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配置文件中定义的。