Tie :: Syslog.

amarre um filehandle para syslog
Baixe Agora

Tie :: Syslog. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Broc Seib
  • Site do editor:
  • http://search.cpan.org/~dcoppit/

Tie :: Syslog. Tag


Tie :: Syslog. Descrição

Amarre um filehandle para syslog Tie :: Syslog é um módulo Perl permite que você amarre um arquivo handhandle (somente saída) para syslog. Isso se torna útil em geral quando você deseja capturar qualquer atividade que acontece em Stderr e veja que é sirlogged para a perusibilidade posterior. Você também pode criar um arquivo arbitrário, dizer log e enviar coisas para o syslog, imprimindo neste arquivo handandle. Este módulo depende do módulo SYS :: Syslog para realmente obter informações para syslog.tie seu arquivo handandle para syslog usando um glob para o arquivo handandle. Quando ele está ligado à classe 'Tie :: Syslog', você pode opcionalmente passar quatro argumentos que determinam o comportamento da saída ligada ao syslog.Você primeiro especificar uma instalação e prioridade para direcionar seu tráfego de filehandle para os canais apropriados no syslog. Sugiro revisar uma manpage para o syslog no seu sistema local para identificar quais são as instalações e prioridades. No entanto, este primeiro argumento é especificado como uma string que consiste na facilidade seguida por um ponto, seguido pela prioridade. Por exemplo, a configuração padrão é 'local0.error'. (Nota: Eu acredito que o Linux usa 'err' em vez de 'erro'.) Se você não especificar um primeiro AG, este padrão será usado. O segundo argumento é uma string de identificador. Esta é a string que aparece em linha de saída de evey que o syslog escreve. Você pode usar esse identificador para ajudar a classificar linhas de syslog produzidas por diferentes aplicativos (com IDs diferentes.) Se você não especificar um valor para este argumento, ele será padrão para o nome do programa em execução. (Isso é derivado da variável de $ 0 especial, desviando tudo até o caractere final aparente para frente.) O terceiro argumento é uma série de opções de log separadas por vírgulas específicas para syslog. A documentação atual suporta "PID, contras, Ndelay, Nowait". Verifique suas listagens locais, pois você pode passar valores que são apenas parte do seu sistema local. Eu sugiro verificar suas páginas man para syslog, e talvez olhar dentro do seu site_perl / $ archname / sys / syslog.ph para outros valores. Se você não passar neste terceiro argumento, ele é padronizado para a string 'pid', que torna o syslog colocar um valor pid em cada linha de saída. O quarto argumento é a string 'inet' ou 'unix'. Isso é passado para o sys :: syslog :: setlogsock () Chamada para especificar o tipo de soquete a ser usado ao abrir a conexão com o syslog. Se este argumento não for especificado, o padrão usado é 'inet'. Muitas instalações Perl ainda têm Sys Original :: Syslog, que não possui a rotina SetLogsock (). Também há nenhuma constante de $ versão para testar no SYS :: Syslog, então vamos testar a tabela de símbolos para ver se a rotina existe. Se a rotina não existir, o quarto argumento é silenciosamente ignorado. Eu não queria exigir que as pessoas tivessem "a mais recente" versão do Perl apenas para usar este módulo.note: Agora você pode, opcionalmente, passar uma referência a um arquivo handandle como o * muito * primeiro arg (antes do 'empate :: syslog' Mesmo ...) O * Somente * Tempo que você faria Isso é se você está enfrentando problemas usando seu arquivo marcado com outro código que espera fazer chamadas como fileno () e binmode () para operar neste arquivo marcado. A API Tiehandle não nos dá nenhuma maneira (que eu encontrei) para obter acesso à variável reajustiva ou filehandle neste caso. Então, recorri para apenas passá-lo como Arg em frente e apenas armazená-lo no objeto. ** Há problemas com isso !!! ** Esteja ciente, aqueles de vocês isso podem afetar ... Sinopse Use Tie :: Syslog; ### ## Passe até quatro args: ## Facility.Priority ('local0.error') ## Nota Linux usa 'err' ## identidade ('my_program') ## Opções de log ('pid') ## SetLogsock ('inet' | 'UNIX') ### Tie * Mylog, 'Tie :: Syslog', 'local0.Error', 'my_program', 'pid', 'inet'; Imprimir mylog "Eu cometi um erro."; ## Este será sirlogged printf mylog "erro% d", 42; ## syslog como "erro 42" desamarrar * mylog; ### ## CASE ESPECIAL: Passe um ref no arquivo de arquivo como primeiro ARG. ## Este armazena o filehandle e usa para implementar chamadas ## como fileno () e binmode () etc ... ### Tie * stderr, * stderr, 'tie :: syslog', 'local0.Error' ',' my_app ',' pid ',' inet '; ### ## Sim, parece engraçado, mas é a única maneira ...? ### Requisitos: · Perl.


Tie :: Syslog. Software Relacionado