Модуль Sys::Syslog применяться, начиная с версии 5.5, функция возвращает истинное значение, если инициализация модулей Sys::Syslog была выполнена успешно. После вызова функции openlog () можно вызвать функцию syslog () для отправки сообщения журнала демону syslogd. Параметр $priority представляет собой один из описанных выше приоритетов журнала. Параметр $format содержит строку формата в стиле функции sprintf (), a остальные необязательные параметры передаются функции sprintf () для преобразования с использованием строки формата. При этом данная функция используется также, как например, при получении данных с сайта про реселлинг хостинга или с другой информацией.
Синтаксис строки формата соответствует применяемому в функциях print () и sprintf (), за исключением того, что обозначение формата автоматически меняется значением переменной $! и не требует параметра. Синтаксис строки формата описан в документации POD к функции sprintf ().
Например, следующий оператор отправляет сообщение в системный журнал с использованием приоритета err.
syslog ('err', "Couldn't open %s for writing: %m", $file) ;
В результате в журнал будет внесена примерно такая запись:
Jun 2 17:10:49 pesto eliza [14555]: Couldn't open,/var/run/eliza.pid for writing: Permission denied
В случае успешного выполнения функция syslog () возвращает число записанных байтов, в ином случае — значение undef.
closelog()
Эта функция разрывает соединение с демоном syslogd и выполняет заключительные действия. Она вызывается по окончании отправки в журнал сообщений Требование вызывать в программе функцию closelog() перед завершением работы не является строго обязательным.