2017-02-08 15 views
0

Можно ли отделить файл журнала, в котором регистрируются журналы ошибок в зависимости от их уровня.Ошибка регистрации SugarCRM

К примеру у меня есть level = fatal, я приложу все фатальные журналы sugarcrm_fatal.log, level = info, я приложу все журналы Информации для sugarcrm_info.log

Спасибо всех заранее!

+0

Интересная идея. Вы думаете о регистрации всех одновременно? Если это так, имейте в виду количество ошибок, которые могут быть сгенерированы на уровне информации или отладки, что может быть большим количеством записей на диске, которые могут потенциально повлиять на производительность приложений. – Reisclef

ответ

0

Я не делал этого сам, вы должны попробовать, я просто ссылаюсь на ссылки. Это может вам помочь.

Создание пользовательских Лесорубы

Пользовательские Лесорубы

Пользовательские регистраторы могут быть использованы для записи журнала записи в централизованный инструмент управления приложениями, или писать сообщения в качестве инструмента, такого как FirePHP разработчика.

Для этого вы можете создать новый класс экземпляра, который реализует интерфейс LoggerTemplate. Ниже приведен пример создания регистратора FirePHP.

Сначала вам необходимо создать свой регистрационный класс в ./custom/include/SugarLogger/. В этом примере мы создадим. /custom/include/SugarLogger/FirePHPLogger.php.

<

?php 

// change the path below to the path to your FirePHP install 
require_once('/path/to/fb.php'); 

class FirePHPLogger implements LoggerTemplate 
{ 
    /** Constructor */ 
    public function __construct() 
    { 
     if (
      isset($GLOBALS['sugar_config']['logger']['default']) 
      && $GLOBALS['sugar_config']['logger']['default'] == 'FirePHP' 
     ) 
     { 
      LoggerManager::setLogger('default','FirePHPLogger'); 
     } 
    } 

    /** see LoggerTemplate::log() */ 
    public function log($level, $message) 
    { 
     // change to a string if there is just one entry 
     if (is_array($message) && count($message) == 1) 
     { 
      $message = array_shift($message); 
     } 

     switch ($level) 
     { 
      case 'debug': 
       FB::log($message); 
       break; 
      case 'info': 
       FB::info($message); 
       break; 
      case 'deprecated': 
      case 'warn': 
       FB::warn($message); 
       break; 
      case 'error': 
      case 'fatal': 
      case 'security': 
       FB::error($message); 
       break; 
     } 
    } 
} 

Единственный метод, который должен быть реализован по умолчанию является log() метода, который записывает сообщение в журнале на внутренний интерфейс. Вы можете указать, какие уровни журналов, которые этот бэкэнд может использовать в constuctor, вызывая метод LoggerManager::setLogger() и указав уровень, который будет использоваться для этого регистратора в первом параметре; передача 'default' делает его регистратором для всех уровней ведения журнала.

Затем вы укажете свой регистратор по умолчанию как 'FirePHP' в своем config_override.php файле.

$sugar_config['logger']['default'] = 'FirePHP'; 

Refer Link

More information about Logs

+0

Спасибо, я попробую это. –

+0

Пробовал это, но это только срабатывает, если вы отлаживаете использование FirePHP –

+0

Я думаю, что это возможно. –