Log4perl缺少init

Log4perl缺少init,perl,log4perl,Perl,Log4perl,我编写了一个类a,在这里我定义并初始化了一个rootlogger my $conf = q( log4perl.rootLogger = ERROR, LOGFILE log4perl.appender.LOGFILE.filename = /var/log/Application.log log4perl.appender.LOGFILE = Log::Log4perl::Appender::File log

我编写了一个类a,在这里我定义并初始化了一个rootlogger

my $conf = q(
          log4perl.rootLogger = ERROR, LOGFILE   
          log4perl.appender.LOGFILE.filename = /var/log/Application.log
          log4perl.appender.LOGFILE = Log::Log4perl::Appender::File
          log4perl.appender.LOGFILE.mode = write  
          log4perl.appender.LOGFILE.layout = PatternLayout
          log4perl.appender.LOGFILE.layout.ConversionPattern = [%r] %F %L %c - %m%n
          );
Log::Log4perl->init(\$conf);
在a的子类中,我想使用这个记录器

$self->LOG(Log::Log4perl->get_logger("Hotels"));
$self->LOG()->info("Starting 'Hotels'");
运行应用程序时,我会收到消息

Log4perl:似乎没有发生初始化。忘记调用init()

为什么init不被识别


K.D.J.

你的例子不够详细,我无法理解到底发生了什么

但这里有一个有效的例子

use strict;
use warnings;
use Log::Log4perl;


my $conf = q(
          log4perl.rootLogger = ERROR, LOGFILE   
          log4perl.appender.LOGFILE.filename = /tmp/Application.log
          log4perl.appender.LOGFILE = Log::Log4perl::Appender::File
          log4perl.appender.LOGFILE.mode = write  
          log4perl.appender.LOGFILE.layout = PatternLayout
          log4perl.appender.LOGFILE.layout.ConversionPattern = [%r] %F %L %c - %m%n
          );
Log::Log4perl->init(\$conf);

my $logger = Log::Log4perl->get_logger("Hotels");

$logger->error("test");
请显示所有代码。事情变得有点神秘,因为你几乎没有表现出来。一个问题是,您正在使用信息,但仅在配置中显示错误。