アプリのさまざまな領域がさまざまなファイルにログを記録する複数のロガーを作成したいと考えています。たとえば、ユーザー データの取得に関連するすべてのクラスは user.log に記録され、購入に関するすべての機能は purchase.log に記録されます。ロガーとアペンダーのセットアップに構成配列メソッドを使用しています。私のindex.phpで:
require_once('log4php/Logger.php');
require_once('classB.php');
require_once('classA.php');
Logger::configure(array(
'rootLogger' => array('appenders' => array('default')),
'classALogger' => array('appenders' => array('classAAppender')),
'appenders' => array(
'default' => array(
'class' => 'LoggerAppenderEcho',
'layout' => array(
'class' => 'LoggerLayoutSimple'
)
),'classAAppender' => array(
'class' => 'LoggerAppenderFile',
'additivity' => false,
'layout' => array(
'class' => 'LoggerLayoutSimple'
),
'params' => array(
'file' => 'log/classA.log',
'append' => true
)
)
),
));
$logger = Logger::getLogger("main");
$logger->info('message from index' . '<br>');
$classA = new ClassA();
$classA->test();
クラスAは次のとおりです。
class ClassA
{
public function test()
{
$logger = Logger::getLogger("classALogger");
$logger->error('from ClassA');
}
}
デフォルトまたはルート ロガーにはログを記録できますが、この例では classALogger にログを記録できません。助言がありますか?