O cmdlet Set-PSFLoggingProvider faz parte do PSFramework, um dos módulos mais poderosos da comunidade para gerenciar automação e logs em escala. Ele permite que você configure onde e como seus logs serão armazenados (arquivo, banco de dados, Event Log, etc.) de forma centralizada.
Se você está cansado de usar apenas Write-Host ou Out-File, o PSFramework é o próximo nível.
🏗️ 1. O Conceito de Provedores (Providers)
O PSFramework separa a mensagem do destino. Você apenas escreve a mensagem no código, e o Set-PSFLoggingProvider decide para onde ela vai.
🛠️ 2. Configurando o Provedor de Arquivo (Logfile)
O uso mais comum é direcionar logs para um arquivo .csv ou .log de forma estruturada.
Passo 1: Habilitar o provedor
Por padrão, os provedores podem estar desativados.
PowerShell
Set-PSFLoggingProvider -Name logfile -Enabled $true
Passo 2: Configurar o caminho do log
Você usa o parâmetro -Option para passar configurações específicas, como o local do arquivo.
PowerShell
Set-PSFLoggingProvider -Name logfile -Option @{
FilePath = "C:\Logs\Automacao_%Date%.csv"
IncludeTime = $true
}
🔍 3. Parâmetros Principais
| Parâmetro | Descrição |
| -Name | O nome do provedor (ex: logfile, eventlog, gelf). |
| -Enabled | $true ou $false. Ativa ou desativa o destino sem apagar as configurações. |
| -Level | Define a severidade mínima (ex: Warning, Error, Important). |
| -Option | Um Hashtable com configurações específicas de cada provedor. |
🚀 4. Exemplo Prático: Log de Arquivo + Console
Imagine que você quer que erros graves fiquem salvos em arquivo, mas tudo apareça no console enquanto você desenvolve.
# 1. Instalar (se necessário)
# Install-Module PSFramework
# 2. Configurar o arquivo para salvar apenas mensagens "Important" ou superiores
Set-PSFLoggingProvider -Name logfile -Enabled $true -Level Important -Option @{
FilePath = "C:\Temp\LogRelatorio.csv"
}
# 3. Escrever mensagens
Import-Module PSFramework
Write-PSFMessage -Message "Iniciando processo..." -Level Verbose
Write-PSFMessage -Message "Algo não parece certo." -Level Warning
Write-PSFMessage -Message "ERRO CRÍTICO NO SISTEMA!" -Level Critical
📊 5. Por que usar o PSFramework em vez do nativo?
- Assíncrono: Ele não “trava” o seu script enquanto escreve no disco; o log acontece em uma thread separada.
- Rotatividade: Ele gerencia automaticamente o tamanho dos arquivos de log para não encher o seu disco.
- Múltiplos Destinos: Com uma única linha de
Write-PSFMessage, você pode enviar o log para um arquivo local e simultaneamente para um servidor centralizado.
[!TIP]
Dica de Pro: Use
Get-PSFLoggingProviderpara ver todos os provedores disponíveis no seu sistema e quais opções cada um aceita. O provedoreventlogé excelente para auditorias de segurança no Windows.
- Como usar o cmdlet Set-PSFLoggingProvider no PowerShell para aprimorar o monitoramento de logs.
- Como personalizar esquemas de cores no prompt de comando do Windows
- Descubra como implementar o altruísmo em um ambiente Windows.
- Como resolver o erro 0x8007f026 STATUS_WININET_LOAD_FAILED no Windows 10 e 11
- Como criar e gerenciar uma conta da Microsoft no Windows
