На Centos7 С PHP 7, настроенным на отправку ошибок в системный журнал, ошибки разбора передаются на стену, например, вошедшие в систему пользователи видят такие сообщения:

Broadcast message from systemd-journald@xxxxxxxxxx (Fri 2017-03-03 22:29:05 UTC):

httpd[3465]: PHP Parse error:  Invalid numeric literal in /web/test.php on line 20

Я хотел бы перехватить эти сообщения и не дать им зайти на стену. Я попробовал этот конфиг Rsyslog:

user.*                                                /var/log/php.log
& stop

однако это не помешало трансляции сообщений. Редактирование /etc/systemd/journald.conf для включения ForwardToWall=no запрещает широковещательное сообщение ... Проблема в том, что он предотвращает отображение всех аварийных сообщений, что нежелательно.

Как я могу предотвратить передачу ошибок синтаксического анализа PHP, но позволить другим критическим системным сообщениям регистрироваться на консоли?

1 ответ1

0

Оказывается, что ForwardToWall=no & ForwardToSyslog=yes в /etc/systemd/journald.conf решает проблему.

Emerg сообщение от PHP попадает в эту пользовательскую конфигурацию Rsyslog:

user.*                                                /var/log/php.log
& stop

И другие сообщения Emerg позже попадают с:

*.emerg                                                 :omusrmsg:*

Который отправляет сообщения всем зарегистрированным пользователям.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .