Стандартное логирование в symfony
Во время разработки иногда необходимо отлаживать приложение. Обычные средства типо print_r или var_dump могу быть недоступны, если приложение имеет большой функционал и т.п. В симфони с версии 1 есть страндартные способы логирования: В контроллере:
$this->logMessage($level, $message);
$this->logMessage('err', 'Onoes something went wrong');
В шаблоне:
use_helper('Debug')
log_message($message, $level)
log_message('Ohnoes something went wrong', 'err')
В любой другой части приложения:
sfContext::getInstance()->getLogger()->err($message);
sfContext::getInstance()->getLogger()->err('Ohnoes something went wrong');
Так же можно создать свой обработчик для модели:
class MyCustom_Api_Log
{
/**
* Wrapper method for getting a symfony logger object
*
* @return object
*/
public static function getLogger()
{
return sfContext::getInstance()->getLogger();
}
/**
* Wrapper method for logging debug message
*
* @param string $message
*/
public static function logDebug($message)
{
self::getLogger()->debug($message);
}
/**
* Wrapper method for logging an error
*
* @param string $message
*/
public static function logError($message)
{
self::getLogger()->err($message);
}
}
// Example Usage
MyCustom_Api_Log::logError('Ohnoes something went wrong');
Теперь можно обрабатывать ошибки без вызова апи симфони и ошибки будут логироваться в общий лог приложения.