PowerShell:
Журналирование

Как:

Вот короткое руководство по добавлению базового логирования в ваши скрипты:

# Создание простого сообщения в лог
Write-Host "Инфо: Начало процесса скрипта."

# Запись в файл
"Инфо: Это сообщение залогировано." | Out-File -Append myLog.log

# Использование встроенного cmdlet для более детализированного логирования
Start-Transcript -Path "./detailedLog.log"
Write-Output "Предупреждение: Что-то не так."
# ... ваш скрипт что-то делает
Stop-Transcript

# Вывод detailedLog.log
******************************
Запись транскрипции PowerShell начата
Время начала: 20230324112347
Пользователь: PShellGuru@example.com
Пользователь с правами запуска: PShellGuru@example.com
Имя конфигурации: 
Компьютер: PS-DEVBOX (Microsoft Windows NT 10.0.17763.0)
Хост-приложение: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
ID Процесса: 2024
Версия PS: 7.1.2

Теперь в ваших логах есть пошаговое описание того, что делал ваш код.

Глубокое погружение:

Исторически, логирование почти так же старо, как и программирование. Это как журнал капитана, но для программного обеспечения. В старые времена это могли быть распечатки или телетайпные машины; сейчас это уже файлы и сложные системы управления логами.

Когда вы находитесь в “окопах” PowerShell, Write-Host быстро и грязно, но он просто выводит текст на консоль, что не очень хорошо для ведения записей. Out-File предоставляет простой способ вывести текст в файл, но для настоящего “сока” вы захотите использовать Start-Transcript и Stop-Transcript, которые логируют всё – ввод, вывод, весь процесс.

Альтернативы? Конечно, если вы работаете на предприятии, вы могли бы посмотреть на Журнал событий Windows или использовать программное обеспечение вроде Logstash, но для вашего ежедневного скрипта оставайтесь с инструментами PowerShell. Что касается реализации, помните, что нужно логировать умно – слишком мало и это бесполезно, слишком много и это белый шум.

Смотрите также:

Проверьте это, чтобы взять в руки всё, что касается логирования в PowerShell: