修正してみました。
@@ -85,8 +85,6 @@
}
- // added by viva(2010.05.04)
- $this->_validateApender($appender, $appenderProperties);
}
}
@@ -131,21 +129,6 @@
}
return true;
- }
-
- //
- // added by viva(2010.05.04)
- //
- protected function _validateApender($appender, $appenderProperties)
- {
- $validater = new LoggerReflectionUtils($appender);
- foreach ($appenderProperties as $pk => $pv) {
- if ($pk == 'class' || $pk == 'layout') {
- continue;
- }
- $validater->setProperty($pk, $pv);
- }
- $validater->activate();
}
}
}
- // added by viva(2010.05.04)
- $this->_validateApender($appender, $appenderProperties);
}
}
@@ -131,21 +129,6 @@
}
return true;
- }
-
- //
- // added by viva(2010.05.04)
- //
- protected function _validateApender($appender, $appenderProperties)
- {
- $validater = new LoggerReflectionUtils($appender);
- foreach ($appenderProperties as $pk => $pv) {
- if ($pk == 'class' || $pk == 'layout') {
- continue;
- }
- $validater->setProperty($pk, $pv);
- }
- $validater->activate();
}
}
定義ファイルは次のようにPHP配列の形で書きます。
<?php
return array(
'threshold' => 'ALL',
'rootLogger' => array(
'level' => 'INFO',
'appenders' => array('default'),
),
'loggers' => array(
'dev' => array(
'level' => 'DEBUG',
'appenders' => array('default'),
),
),
'appenders' => array(
'default' => array(
'class' => 'LoggerAppenderRollingFile',
'layout' => array(
'class' => 'LoggerLayoutPattern',
'conversionPattern' => "%d [%p]: %m (remote_ip_address=[%X{ip_address}] uri=[%X{uri}])%n",
),
'file' => 'logging.log',
'MaxFileSize' => '100k',
'MaxBackupIndex' => 3,
),
),
);
?>
return array(
'threshold' => 'ALL',
'rootLogger' => array(
'level' => 'INFO',
'appenders' => array('default'),
),
'loggers' => array(
'dev' => array(
'level' => 'DEBUG',
'appenders' => array('default'),
),
),
'appenders' => array(
'default' => array(
'class' => 'LoggerAppenderRollingFile',
'layout' => array(
'class' => 'LoggerLayoutPattern',
'conversionPattern' => "%d [%p]: %m (remote_ip_address=[%X{ip_address}] uri=[%X{uri}])%n",
),
'file' => 'logging.log',
'MaxFileSize' => '100k',
'MaxBackupIndex' => 3,
),
),
);
?>
LoggerConfiguratorPhpを使って便利なのは、
たとえばlog出力先を絶対パス指定や
"../hoge/"のようなあまり使いたくない形式の相対パス指定で
書かずに、"$logpath/log.txt"のように変数指定できるので、
設定を動的に変更することが容易になる
ことが挙げられます。
ちなみに、呼び出しは、次のようにします。
LoggerMDC::put('ip_address', $_SERVER['REMOTE_ADDR']);
LoggerMDC::put('uri', $_SERVER['REQUEST_URI']);
Logger::configure('configurator_php.php', 'LoggerConfiguratorPhp');
$logger = Logger::getRootLogger();
$logger->info("logging start");
LoggerMDC::put('uri', $_SERVER['REQUEST_URI']);
Logger::configure('configurator_php.php', 'LoggerConfiguratorPhp');
$logger = Logger::getRootLogger();
$logger->info("logging start");
とは言え、大して需要があるとも思えませんので、
覚書程度に書き残している次第です。
初めまして。
返信削除LoggerConfiguratorPhpでLoggerAppenderRollingFileを使い、動的にfileの指定をしたかったので、とても参考になりました!
本当に、ありがとうございました。
いま読み返しても、我ながら正に覚書程度の記述内容でしたが、お役に立てて光栄です。
返信削除