# <> # # 1) Write-LogMessage -level "INFO" -message "Some Messaage to LOG" -Path C:\Users\userprofile\file.txt # 2) Write-LogMessage -level "ERROR" -message "Some Messaage to LOG" -Path C:\Users\userprofile\file.txt # # 1 Will log directly INFO message # 2 Will log directly ERROR message and system $error[0] variable # function Write-LogMessage { param ( [ValidateSet("INFO", "WARNING", "ERROR")] [string]$Level, [string]$Message, [string]$Path ) $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss.fff" if ($Level -eq "ERROR") { $logMessage = "[$timestamp] [$Level] $Message | $($Error[0] | Select-Object *)" } else { $logMessage = "[$timestamp] [$Level] $Message" } $logMessage | Add-Content $Path -Encoding utf8 }