Средство syslog — очень мощный инструмент для отладки ваших web-приложений. С помощью него вы можете наблюдать, какие модули и SQL-запросы выполняются, а также значения каких переменных изменяются, когда вы ходите по Web-сайту. Это помогает точно определять модули, в которых, вероятно, имеются проблемы или критические ошибки.
Функция syslog()
// функция пишет сообщение в системный журнал, // возвращая true в случае успеха, false - в случае ошибки. bool syslog (int Приоритет, string Сообщение);
Возможные значения приоритетов
| Константа | Описание | 
|---|---|
| LOG_EMERG | дальнейшее использование системы невозможно | 
| LOG_ALERT | необходимо немедленно принять меры | 
| LOG_CRIT | критическое состояние | 
| LOG_ERR | состояние ошибки | 
| LOG_WARNING | предупреждение | 
| LOG_NOTICE | уведомление | 
| LOG_INFO | информационное сообщение | 
| LOG_DEBUG | отладочное сообщение | 
Что писать в журнал
Что и куда писать, решать вам. Лично я в своих проектах использую syslog для записи сообщений об ошибках (недоступна база данных, файл не существует, пользователь не авторизован), отладочной информации (модуль запущен, сделан такой-то запрос к базе данных, модуль остановлен) и тд.
Пример
if (authorized_client()) {
    // Если пользователь авторизован
    // делаем что-нибудь
} else {
    // Если не авторизован
    // пишем сообщение в лог
    $date = date("Y/m/d H:i:s");
    syslog(LOG_WARNING, "Не авторизованный клиент: {$date} {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}
Теперь откройте окно X-терминала и введите следующую команду, чтобы увидеть, что было записано в файл /var/log/messages:
tail /var/log/messages
Вы должны увидеть примерно следующий текст
Feb 09 14:43:42 localhost apache2: 127.0.0.1: test.php - Не авторизованный клиент: 2011/02/09 14:43:44 127.0.0.1 Mozilla...
Для просмотра живого лога используйте параметр -f
tail -f /var/log/messages
Ссылки
Источник: https://www.kobzarev.com/programming/writing-messages-to-the-syslog/