[SP-pm] FILEHANDLE LOGFILE or INFILE

Leonardo Ruoso leonardo at ruoso.com
Thu Feb 5 13:27:22 PST 2015


Ou o exemplo feio (sem eventos) e blocking que eu mandei para a cascavel
para comparar dois logs linha a linha (má ideia, mas era o problema).

https://gist.github.com/leonardoruoso/e21eae8603653dabfd93

Em 5 de fevereiro de 2015 19:21, Leonardo Ruoso <leonardo em ruoso.com>
escreveu:

>
>
> Em 5 de fevereiro de 2015 19:16, Leonardo Ruoso <leonardo em ruoso.com>
> escreveu:
>
>> Em 5 de fevereiro de 2015 19:03, Daniel de Oliveira Mantovani <
>> daniel.oliveira.mantovani em gmail.com> escreveu:
>>
>>> O de graça depois que você sabe o que está fazendo é plausível, do outro
>>> lado te faz uma ameba.
>>>
>>
>> http://poe.perl.org/?POE_Cookbook/Tail_Following_Web_Server
>>
>
> http://poe.perl.org/?POE_Cookbook/Watching_Logs
>
>
>>
>>
>>
>>>
>>> 2015-02-05 18:57 GMT-02:00 Leonardo Ruoso <leonardo em ruoso.com>:
>>>
>>> Em 4 de fevereiro de 2015 15:51, Daniel de Oliveira Mantovani <
>>>> daniel.oliveira.mantovani em gmail.com> escreveu:
>>>>
>>>>> BTW, você está lendo o arquivo de log do WebSphere Application Server,
>>>>> SystemOut.log mesmo que você consiga implementar o "tail" que você está
>>>>> tentando implementar, você vai ter problemas pois o WebSphere Application
>>>>> Server "rotate" o arquivo, sendo assim o seu programa vai perder o ID do
>>>>> descritor de arquivos e vai parar de funcionar. Para resolver o problema,
>>>>> além de você implementar o seu "tail", você precisa ficar verificando se o
>>>>> ID do SystemOut.log mudou. É fácil de implementar e você vai aprender
>>>>> vários conceitos de Unix-like do caminho, estamos aqui para ajudar.
>>>>>
>>>>
>>>> Hmmm, o POE::Wheel::FollowTail e muitos outros módulos fazem isso de
>>>> graça :D
>>>>
>>>>
>>>>
>>>>>
>>>>> 2015-02-04 15:45 GMT-02:00 Daniel de Oliveira Mantovani <
>>>>> daniel.oliveira.mantovani em gmail.com>:
>>>>>
>>>>> Kleber, tem um livro chamado Advanced Programming In the Unix
>>>>>> Environment. Eu recomendo você ler o capítulo 3 - File I/O a sua dúvida não
>>>>>> tem a ver com Perl e sim com conceitos de O.S.
>>>>>>
>>>>>> 2015-02-04 15:10 GMT-02:00 Renato Santos <renato.cron em gmail.com>:
>>>>>>
>>>>>> seu programa já está feito, alguem que criou esses nomes e
>>>>>>> filehandles.
>>>>>>>
>>>>>>> o seek esta mandando ir para a ultima posicao (3 parametro com valor
>>>>>>> 2).
>>>>>>> o tell esta mandando retornar a posicao atual.
>>>>>>>
>>>>>>> signfica que o LOGFILE esta na posicao 56666091(bytes/char?)
>>>>>>>
>>>>>>> 2015-02-04 15:01 GMT-02:00 Kleber Rodrigo de Carvalho <
>>>>>>> kleber.carvalho em gmail.com>:
>>>>>>>
>>>>>>> Olá
>>>>>>>>
>>>>>>>> Disponibilizei meu código aqui: http://pastebin.com/T6AGHm2n
>>>>>>>>
>>>>>>>>
>>>>>>>> Minha duvida é:
>>>>>>>>
>>>>>>>>  seek($filehandler, 0, 2);
>>>>>>>>  $curreof = tell($filehandler);
>>>>>>>>  print("curreof=" . $curreof . "\n");
>>>>>>>>
>>>>>>>>
>>>>>>>> Porque quando eu executo esse trecho de código acima usando LOGFILE,
>>>>>>>> eu recebo curreof=56666091
>>>>>>>> O que isso significar?
>>>>>>>>
>>>>>>>> Obrigado
>>>>>>>>
>>>>>>>> Abraços
>>>>>>>> Kleber Rodrigo de Carvalho
>>>>>>>> Engenheiro de Software
>>>>>>>> KleberCarvalho.com | (15) 9-9161-3362
>>>>>>>>
>>>>>>>> Cara, estou achando que você está lendo um programa já feito, que
>>>>>>>> esta
>>>>>>>> usando *FILEHANDLE* em si, com esses nomes (LOGFILE, INLINE)
>>>>>>>>
>>>>>>>> O jeito mais seguro, é usar um FH dentro de uma ref,
>>>>>>>>
>>>>>>>> # ler em binario
>>>>>>>> open(my $fh, '<:raw', '/tmp/foo.bin');
>>>>>>>> while( my $somebytes = <$fh>){ . .. }
>>>>>>>>
>>>>>>>> # ler em utf8
>>>>>>>> open(my $fh, '<:utf8', '/tmp/tmp.utf8');
>>>>>>>> while( my $line = <$fh>){ . .. }
>>>>>>>>
>>>>>>>> # escrever em utf8
>>>>>>>> open(my $fh, '>:utf8', '/tmp/tmp.utf8');
>>>>>>>> print $fh "uma linha\n";
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2015-02-04 14:07 GMT-02:00 Gabriel Vieira <gabriel.vieira at
>>>>>>>> gmail.com>:
>>>>>>>>
>>>>>>>> Cara, estou achando que você está lendo um programa já feito, que
>>>>>>>> esta
>>>>>>>> usando *FILEHANDLE* em si, com esses nomes (LOGFILE, INLINE)
>>>>>>>>
>>>>>>>> O jeito mais seguro, é usar um FH dentro de uma ref,
>>>>>>>>
>>>>>>>> # ler em binario
>>>>>>>> open(my $fh, '<:raw', '/tmp/foo.bin');
>>>>>>>> while( my $somebytes = <$fh>){ . .. }
>>>>>>>>
>>>>>>>> # ler em utf8
>>>>>>>> open(my $fh, '<:utf8', '/tmp/tmp.utf8');
>>>>>>>> while( my $line = <$fh>){ . .. }
>>>>>>>>
>>>>>>>> # escrever em utf8
>>>>>>>> open(my $fh, '>:utf8', '/tmp/tmp.utf8');
>>>>>>>> print $fh "uma linha\n";
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2015-02-04 14:07 GMT-02:00 Gabriel Vieira <gabriel.vieira at
>>>>>>>> gmail.com>:
>>>>>>>>
>>>>>>>> > Qual a diferença de comportamento que você observou?
>>>>>>>> >
>>>>>>>> > 2015-02-04 11:05 GMT-05:00 Kleber Rodrigo de Carvalho <
>>>>>>>> > kleber.carvalho at gmail.com>:
>>>>>>>> >
>>>>>>>> > Pessoal,
>>>>>>>> >>
>>>>>>>> >> Estou escrevendo um programa em Perl, e preciso entender as
>>>>>>>> >> diferenças entre os FILEHANDLE.
>>>>>>>> >> Por exemplo, um programa lendo um arquivo usando LOGFILE se
>>>>>>>> comporta
>>>>>>>> >> diferente de um usando INFILE.
>>>>>>>> >> Estou procurando na internet por:
>>>>>>>> >>
>>>>>>>> >> perl FILEHANDLE LOGFILE INFILE
>>>>>>>> >> perl LOGFILE INFILE
>>>>>>>> >>
>>>>>>>> >> Mas não encontrei nada. Se encontra todos os tipos de FILEHANDLE
>>>>>>>>>>>>>>>> >> ajudaria.
>>>>>>>> >> Será que alguém poderia me ajudar nisso?
>>>>>>>> >>
>>>>>>>> >> Muito obrigado
>>>>>>>> >>
>>>>>>>> >> Abraços
>>>>>>>> >> Kleber Rodrigo de Carvalho
>>>>>>>> >> Engenheiro de Software
>>>>>>>> >> KleberCarvalho.com | (15) 9-9161-3362
>>>>>>>> =begin disclaimer
>>>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>> =end disclaimer
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Saravá,
>>>>>>> Renato CRON
>>>>>>> http://www.renatocron.com/blog/
>>>>>>> @renato_cron <http://twitter.com/#!/renato_cron>
>>>>>>>
>>>>>>> =begin disclaimer
>>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>> =end disclaimer
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> -dom
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Daniel de Oliveira Mantovani
>>>>>> Business Analytic Specialist
>>>>>> Perl Evangelist /Astrophysics hobbyist.
>>>>>> +55 11 9 8538-9897
>>>>>> XOXO
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> -dom
>>>>>
>>>>> --
>>>>>
>>>>> Daniel de Oliveira Mantovani
>>>>> Business Analytic Specialist
>>>>> Perl Evangelist /Astrophysics hobbyist.
>>>>> +55 11 9 8538-9897
>>>>> XOXO
>>>>>
>>>>> =begin disclaimer
>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>> =end disclaimer
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Leonardo Ruoso
>>>> Journalist, Perl developer and business consultant
>>>> Media, UFC/2006; Telecom, IFCE/1998
>>>>
>>>> =begin disclaimer
>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>> =end disclaimer
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> -dom
>>>
>>> --
>>>
>>> Daniel de Oliveira Mantovani
>>> Business Analytic Specialist
>>> Perl Evangelist /Astrophysics hobbyist.
>>> +55 11 9 8538-9897
>>> XOXO
>>>
>>> =begin disclaimer
>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>>
>>
>>
>> --
>> Leonardo Ruoso
>> Journalist, Perl developer and business consultant
>> Media, UFC/2006; Telecom, IFCE/1998
>>
>
>
>
> --
> Leonardo Ruoso
> Journalist, Perl developer and business consultant
> Media, UFC/2006; Telecom, IFCE/1998
>



-- 
Leonardo Ruoso
Journalist, Perl developer and business consultant
Media, UFC/2006; Telecom, IFCE/1998
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20150205/15e6c592/attachment.html>


More information about the SaoPaulo-pm mailing list