Drupal 7: как перенаправить лог ошибок из базы в файл (модуль Syslog)

Итак, для протоколирования всех критических ошибок и предупреждений в дистрибутиве Drupal 7 по умолчанию присутствует два модуля. Database Logging конечно удобен со своим веб-интерфейсом, но непозволительно прожорлив к системным ресурсам, — ведь он все пишет в таблицу базы данных.

Поэтому наиболее оптимальным вариантом будет настройка модуля Syslog и отключение / удаление Database Logging. Первый позволяет писать логи в файл, что естественно быстрее. Рассмотрим то, как его настроить.

Внимание! Использование Syslog на виртуальном хостинге будет невозможно, т.к. понадобится полный доступ к некоторым настройкам веб-сервера.

Настройка Syslog в Drupal:

1. Активируйте Syslog в админке Drupal 7.

2. Перейдите на страницу Логи и ошибки — admin/config/development/logging (Главная » Администрирование » Конфигурация » Разработка).

3. Настроим модуль.

Настройка syslog в Drupal 7

В группе радиокнопок под заголовком «Сообщения об ошибках» выберите значение «Нет», чтобы пользователи не видели ошибок и предупреждений. На ведение логов это не повлияет.

В поле Идентификатор системного журнала впишите любое слово, — оно будет показываться в начале любой строки лог-файла.  В поле «syslog — формат сообщений» настраивается шаблон сообщения об ошибке и т.п., формат строки. Можно использовать стандартные шаблоны типа !ip (IP адрес посетителя), !message (содержание сообщения), !link (ссылка на страницу, где возникло исключение или предупреждение) и т.п.

Настройка сервера:

Самый важный шаг. Ну вот мы и подошли к нему. Настройки непосредственно на сервере (в моем случае это OpenVZ, Ubuntu).

Откройте конфигурационный файл /etc/syslog.conf или /etc/rsyslog.conf (зависит от того, что найдете, что там установлено из ПО, если ничего такого там не будет, то либо не там ищете, либо придется самостоятельно устанавливать сей софт для ведения логов, однако это уже совсем другая история).

Настройка syslog

В конце файла впишите что-то типа local0.* /var/www/useradmin/data/logs/drupal_my_site/drupal.log

Где local0 — это поле Механизм системных журналов Syslog на admin/config/development/logging в админке Друпала, а /var/www/useradmin/data/logs/drupal_my_site/drupal.log — путь до файла, в который будут писаться логи. Соответственно может быть local1, local2 и др.

Настройка syslog в Drupal 7 - скин 2

Далее подключаемся по SSH, используем для этого утилиту Putty. Как соединяться по SSH пояснять не буду, т.к. это не тема сей статьи. Там нам нужно перезапустить сервис (демона, если выражаться в терминологии Linux).

Посмотрите, что у вас есть в каталоге /etc/init.d. Ищите что-либо из rsyslog, syslog или sysklogd. В моем случае это sysklogd. Вот его и ребутнем. Но сперва проверим запущен ли он, пишем команду sudo /etc/init.d/sysklogd status или просто sudo sysklogd status. Если все в порядке, то перезапускаем с помошью sudo service sysklogd restart.

Если у вас нет sysklogd, но есть syslog, то вместо sysklogd пишем syslog. rsyslog и т.п.

В случае успеха терминал сообщит, что демон успешно перезапущен.

Перезагрузка демона sysklogd в Ubuntu

После можете зайти и проверить, что логи из Drupal пишутся в ваш /var/www/useradmin/data/logs/drupal_my_site/drupal.log.

Опубликовано 5-08-2014 в 14:22


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты