Monitorando arquivos de log com PowerShell

Para monitorar arquivos de log no linux, temos aquele velho conhecido que é o tail -f, mas no windows (obviamente) ele não existe. Todavia, temos o PowerShell, que resolve o problema sem muito esforço. Neste post está o método mais comum de se fazer isso com o PS.

Para fazer com que o PowerShell capture e exiba o conteúdo do arquivo, você pode utilizar o comando abaixo:

Este comando vai pegar todas as linhas e exibi-las no console para você. Isso resolve alguns problemas, mas se o arquivo for muito grande? Neste caso, podemos utilizar o argumento -tail para pegar as últimas linhas do arquivo.

Veja o exemplo abaixo:

Com este comando, recuperamos as últimas 42 linhas do arquivo de log. Se, por algum acaso, você precisar de recuperar as n primeiras linhas, você pode utilizar o argumento -Head, conforme o exemplo abaixo:

Neste comando pegamos apenas as 10 primeiras linhas do arquivo.

Tudo isso é bem legal, mas e se eu precisar monitorar o arquivo de log enquanto ele é criado?

Simples! Basta utilizar o argumento -wait:

Com este último comando, o PowerShell irá exibir todas as linhas do arquivo e ficar vigiando por atualizações, exibindo-as assim que elas acontecerem.

Você pode combinar algum dos outros argumentos que mostramos aqui com o wait. Isso é uma boa ideia, especialmente quando trabalhamos com arquivos grandes. Acho interessante ressaltar que você vai receber um erro se tentar misturar o argumento -head e -tail no mesmo comando.

Importante lembrar que se o seu arquivo de log for escrito em ‘blocos’, ou seja, sua aplicação espera chegar em n linhas para depois efetivar a gravação no arquivo, o console do PS vai ficar parado até que seja efetivada a inclusão de novas linhas.

Mesmo salvando linha a linha, tenho passado por algumas dificuldades com este comando, quando tento monitorar um arquivo que está sendo escrito pelo PowerBuilder. Talvez isso não seja um problema para você. 🙂

Espero ter ajudado.

 

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in .Net, Dev and tagged , , , , , , , , , .