Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

Отладка PHP программ

debugger_on . Разрешение использования внутреннего отладчика PHP

int debugger_on (string address)

Функция подключает отладчик на удаленном сервере по адресу address. Отладчик пока находится в стадии разработки, но он доступен для PHP версии 3.

define_syslog_variables . Инициализация константы диспетчера системных событий

void define_syslog_varaibles (void)

Функция инициализирует константы диспетчера системных событий. Эти константы в дальнейшем используются функциями системных событий.

См. также openlog(), syslog() и closelog().

openlog. Подключение к диспетчеру системных событий

int openlog (string ident, int option, int facility)

Функцию не обязательно вызывать явно. Она автоматически вызывается функцией syslog(), и в этом случае аргумент ident используется со значением FALSE. Строка ident будет добавляться к каждому отсылаемому сообщению. Обычно функция используется при необходимости явной передачи аргументов option и facility.

Аргумент option используется для указания параметров при генерации системного события. Возможные значения этого параметра указаны в следующем списке:

  • LOG_CONS - в случае ошибки при посылке сообщения оно выводится непосредственно в системную консоль.
  • LOG_NDELAY - незамедлительно подключиться к диспетчеру системных событий.
  • LOG_ODELAY - отложить подключение до посылки первого сообщения. Значение используется по умолчанию.
  • LOG_PERROR - выводить сообщения в стандартный поток ошибок.
  • LOG_PID - включать в сообщения идентификатор процесса (PID).

Возможно одновременное указание нескольких значений при помощи битового оператора ИЛИ, например LOG_CONS | LOG_NDELAY | LOG_PID.

Аргумент facility задает вид приложения, посылающего сообщение. Это влияет на их обработку системой. Возможные значения этого параметра указаны в следующем списке:

  • LOG_AUTH - сообщения безопасности и авторизации. Но лучше использовать значение LOG_AUTHPRIV в тех системах, где эта константа определена.
  • LOG_AUTHPRIV - персональные сообщения безопасности и авторизации.
  • LOG_CRON - служба таймера (демоны cron и at).
  • LOG_DAEMON - другие системные службы (daemons).
  • LOG_KERN - сообщения ядра системы (kernel).
  • LOG_LOCAL0 - LOG_LOCAL7 - значения зарезервированы для локального использования.
  • LOG_LPR - подсистема линейного принтера.
  • LOG_MAIL - почтовая подсистема (mail).
  • LOG_NEWS - подсистема новостей USENET.
  • LOG_SYSLOG - сообщения, генерируемые демоном syslogd.
  • LOG_USER - сообщения, порождаемые приложениями.
  • LOG_UUCP - подсистема UUCP

См. также define_syslog_variables(), syslog() и closelog().

closelog. Отключение от диспетчера системных событий

int closelog(void);

Функция позволяет отключиться от диспетчера системных событий. Но обычно ее не вызывают явно.

См. также define_syslog_variables(), syslog() и openlog().

syslog. Посылка системного сообщения

int syslog (int priority, string message)

В аргументе message указывается содержание сообщения. Cимволы %m в этом сообщении заменяются на строку текущего сообщения об ошибке, расшифровывающую значение errno. Аргумент priority является комбинацией уровня приложения и приоритета события. Его возможные значения перечислены в следующем списке в порядке понижения приоритета:

  • LOG_EMERG - неработоспособность системы.
  • LOG_ALERT - необходимы срочные действия.
  • LOG_CRIT - критическое состояние.
  • LOG_ERR - ошибка.
  • LOG_WARNING - предупреждение.
  • LOG_NOTICE - нормальное, но значимое сообщение.
  • LOG_INFO - информационное сообщение.
  • LOG_DEBUG - сообщение отладки.

Пример использования этой функции для посылки сообщения приведен в следующем листинге:

define_syslog_variables();
openlog("myScripLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);
// ...
if (!authorized_client()) { // процедура авторизации

   // неавторизирован! (сохранить сообщение об этом объекте)
   $access = date("Y/m/d H:i:s");
   syslog(LOG_WARNING,"Unauthorized client: $access
            $REMOTE_ADDR ($HTTP_USER_AGENT)");
}
closelog();

В системной документации должно быть указано, как установить собственный обработчик системных событий.

На системах Windows NT служба syslog эмулируется как Event Log.

Смотрите также Обработка ошибок и исключений в PHP, define_syslog_variables(), openlog() и closelog().