2016-08-25 6 views
0

は、私がメッセージを取得するアプリケーションを実行する場合、私は定義して、AIのサブクラスではrootloggerLog4perlは行方不明のinit

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); 

を初期化し、このロガー

$self->LOG(Log::Log4perl->get_logger("Hotels")); 
$self->LOG()->info("Starting 'Hotels'"); 

を使用したいクラスAを書きました

Log4perl:初期化が行われていないようです。 init()を呼び出すのを忘れましたか?

なぜinitが認識されないのですか?

K.D.J.

+0

すべてのコードを表示してくださいhttp://stackoverflow.com/help/mcve。あなたが少ししか見せなかったように、物事はちょっと不思議に思えます。 1つの問題は、情報を使用しているにも関わらず、設定にエラーがあることだけです。 –

答えて

0

あなたの例には、何が起こっているのかを理解するのに十分な詳細が欠けています。

しかし、ここでは動作する例です。

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"); 
関連する問題