Довольно старый и требующий реворка php класс для логирования.
Основные возможности:
- Можно "логировать" сообщения, массивы и объекты
- Есть возможность записи лога в файл
<?
/**
* Класс для логирования
*/
class soLogger
{
/**
* Массив всех сообщений
*
* @var aItems
*/
protected $_aItems = array();
/**
* Добавляет новое сообщение к списку
*
* @param mixed $val
* @param string $sTitle
*
* @return object $this
*/
public function add($val, $sTitle = '')
{
if ( is_object($val) || is_array($val) )
{
$val = '<pre>' . print_r($val, TRUE) . '</pre>';
}
$o = new stdClass();
$o->title = $sTitle;
$o->text = $val;
$this->_aItems[] = $o;
return $this;
}
/**
* Возвращает все сообщения в виде таблицы
*
* @return string
*/
public function show()
{
$sRet = '
<div style="clear: both;"></div>
<br/>
<table cellpadding="0" cellspacing="0" border="1" width="auto">
<tr>
<td colspan="3"><b>Debug:</b></td><td>
';
$i = 1;
foreach($this->_aItems as $oItem)
{
$sRet .= '<tr><td>' . $i . '</td><td>'.$oItem->title.'</td><td>'.$oItem->text.'</td></tr>';
$i++;
}
$sRet .= '</table>';
return $sRet;
}
/**
* Сохраняет все сообщения в файл.
*
* @param string $sOutputFileName
*
* @return object $this
*/
public function flush2file($sOutputFileName)
{
if( file_put_contents($sOutputFileName, $this->show()) === FALSE)
{
die('Permission denied! File: <b>'.$sOutputFileName.'</b>');
}
return $this;
}
/**
* Демонстрация работы
*
* @return void
*/
public static function demo()
{
$oLogger = new soLogger();
$oLogger->add('Error!');
$oLogger->add('Error!', 'Title');
$oLogger->add( array('11', 'zz' => 34, 'Text' ), 'Title2');
$o = new stdClass();
$o->ok = '12';
$o->text = 'text';
$oLogger->add($o);
echo $oLogger->show();
$oLogger->flush2file( __DIR__.'/out.log');
}
}