Функция setlogsock () управляет тем, должен ли модуль Sys::Syslog подключиться к данным syslogd через сокет домена Internet или через локальный сокет домена UNIX. Параметр $socktype может иметь значение “inet” (предусмотренное по умолчанию) или “unix. При этом можно получить любую информацию в сети Интернет, например, с сайта о срочном выкупе квартир - http://www.m-rieltor.ru . Если применяемая в системе версия демона syslogd не рассчитана на прием сообщений по сети, то может потребоваться вызвать эту функцию с параметром “unix”. Функция setlogsock () не импортируется по умолчанию. Ее необходимо импортировать вместе с функциями Sys::Syslog, импортируемыми по умолчанию.
use Sys::Syslog qw(:DEFAULT setlogsock);
Функцию setlogsock () следует вызывать перед первым вызовом функции openlog () или syslog (). Кроме этих четырех функций, есть еще одна, setlogmask (), которая позволяем накладывать маску для исходящих сообщений, чтобы демону syslogd отправлялись сообщения с определенным приоритетом. К сожалению, эта функция требует преобразования имен приоритетов в числовые двоичные маски, что затрудняет ее использование.
В этом модуле есть также внутренняя переменная $Sys::Syslog::host, определяющая имя хоста, на котором модуль будет вносить записи в журнал. По умолчанию в качестве значения этой переменной установлено имя локального хоста. Для внесения записей в журнал на удаленном хосте необходимое обновить значение этой переменной вручную перед вызовом функции openlog (), поскольку эта переменная не описана в документации, ее можно использовать только на свой страх и риск.
Применение средств ведения журнала в программе психотерапевтического сервера
Ниже описано, как применить средства ведения журнала в программе психотерапевтического сервера. Различные функции автоматического перевода сервера в фоновый режим и управления файлом PID еще более затрудняют чтение основного файла сценария, поэтому поместим их в отдельный модуль Daemon наряду с некоторыми новыми вспомогательными функциями записи в системный журнал. По такому же принципу можно поместить в один удобный пакет новую функцию init_daemon (), которая выполняет автоматический перевод в фоновый режиму управляет файлом PID и открывает систему syslog.