Мы отправляем много сообщений syslog из нашего скрипта perls, используя код объекта local2. Это очень хорошо работает в Red Hat, но на SunOS сообщения не отображаются в local2. Например, здесь есть минимальный сценарийОтправка сообщений syslog из perl
#!/usr/bin/perl
use strict;
use warnings;
use Sys::Syslog qw(:DEFAULT :standard :macros);
openlog("", 'ndelay', 'local2');
syslog('info', "ItWorks");
`logger -p local2.info "ItWorks"`;
В этом сценарии я посылаю журнал с помощью модуля PERL Syslog, а также с помощью команды регистратора. Появится только второе сообщение для local2. Причина, по которой я считаю, что это не будет local2, заключается в том, что у нас есть настройка правила в файле syslog.conf для пересылки local2, и только второе сообщение отправляется. Когда я смотрю на 2 сообщений в лог-файле они выглядят немного разные, я не уверен, если это важно
Sep 2 11:41:22 ssapp7001v <150>Sep 2 11:41:22 d336599: ItWorks
Sep 2 11:41:22 ssapp7001v d336599: [ID 702911 local2.info] ItWorks
Я хотел бы также добавить, что я пробовал различные комбинации в PERL коде с помощью local2, как строку, как константу, указав ее в вызове openlog и/или в вызове syslog. Ничто из этого не имеет никакого значения. Я мог бы просто использовать backticks и calllogger, но это мое последнее средство, потому что мне приходится иметь дело с символами, которые могут быть не дружественными к командной строке, а также с успехом при открытии нового процесса для каждого сообщения журнала. К сожалению, никаких изменений конфигурации на этом сервере не может быть и речи.