* @return The newly created concrete Log instance, or an
* false on an error.
*/
- function factory ($log_type, $log_name = '', $ident = '', $conf = array()) {
+ function &factory($log_type, $log_name = '', $ident = '', $conf = array())
+ {
$log_type = strtolower($log_type);
$classfile = 'Log/' . $log_type . '.php';
- if (@include_once $classfile) {
- $class = 'Log_' . $log_type;
+ @include_once $classfile;
+ $class = 'Log_' . $log_type;
+ if (class_exists($class)) {
return new $class($log_name, $ident, $conf);
} else {
return false;
$signature = md5($log_type . '][' . $log_name . '][' . $ident . '][' . implode('][', $conf));
if (!isset($instances[$signature])) {
- $instances[$signature] = Log::factory($log_type, $log_name, $ident, $conf);
+ $instances[$signature] = &Log::factory($log_type, $log_name, $ident, $conf);
}
return $instances[$signature];
}