我正试图在Perl的帮助下构建应用程序。应用程序由来自perl的Thread::Pool和Log4Perl包组成。
当我排除包Thread::Pool日志时工作。但是,当我将它包括在内时,它会给我以下错误:
ERROR: can't load appenderclass 'Log::Log4perl::Appender::File'
Could not find file for 'Log::Log4perl::Appender::File' at C:/Perl/site/lib/load.pm line 214.工作守则:
# use Thread::Pool;
use Log::Log4perl;
my $log_conf = 'LoggingConfiguration.conf';
Log::Log4perl::init($log_conf);
my $logger = Log::Log4perl->get_logger();
$logger->info(" Info Msg ");但如果我删除评论
use Thread::Pool;它给出了上述误差
发生这种情况的确切原因是什么?如何避免此错误?
发布于 2014-10-06 08:50:32
从一些搜索中可以看出,线程::池对use load实用程序的使用存在问题:
在perl 5.8.8下创建对象时,添加“use::池”会在项目被祝福时引发问题。具体来说,在许多情况下,通常返回值并被祝福的代码显示为null。从线程中移除“use”杂注::*修复了这个问题。
线程::在cpanratings上的池
这个模块确实很方便,但在我看来,它存在一些严重的问题。..。第二,该模块使用“use”,这会导致Log::Log4perl发生故障。那肯定是一只邪恶的黑臭虫。只是因为我在这个源文件中找到了捷克人的评论(source.html链接坏了),所以我花了几天的时间调试。
线程::Log4Perl在PerlMonks上的池问题 -未解决,但答案包括:
不要使用线程::池。这是辆马车。切换到线程::队列。(OP的响应:Thread::Queue持续存在的问题) 您也可以尝试线程::池::简单。我在这方面的运气比线程好::池。
所以大家的共识是要么尝试从线程::池中删除use load,要么使用不同的模块。
https://stackoverflow.com/questions/26211407
复制相似问题