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:
Get-Content -path "c:\servicos\serv01\arquivo_de_log.txt"
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:
Get-Content -path "c:\servicos\serv01\arquivo_de_log.txt" -Tail 42
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:
Get-Content -path "c:\servicos\serv01\arquivo_de_log.txt" -Head 10
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:
Get-Content -path "c:\servicos\serv01\arquivo_de_log.txt" -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.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022