src/SafeLogging.ps1
| # # SafeLogging.ps1 # Provides safe wrapper functions for logging that gracefully handle missing LoggingModule # function Write-SafeInfoLog { param([string]$Message, [hashtable]$Additional = @{}) if (Get-Command 'Write-InfoLog' -ErrorAction SilentlyContinue) { # Convert hashtable to context string for LoggingModule $context = if ($Additional.Count -gt 0) { ($Additional.GetEnumerator() | ForEach-Object { "$($_.Key): $($_.Value)" }) -join "`n" } else { "" } Write-InfoLog -Message $Message -Context $context } else { Write-Output "[INFO] - $Message" if ($Additional.Count -gt 0) { $Additional.GetEnumerator() | ForEach-Object { Write-Output " ▶ $($_.Key): $($_.Value)" } } } } function Write-SafeWarningLog { param([string]$Message, [hashtable]$Additional = @{}) if (Get-Command 'Write-WarningLog' -ErrorAction SilentlyContinue) { # Convert hashtable to context string for LoggingModule $context = if ($Additional.Count -gt 0) { ($Additional.GetEnumerator() | ForEach-Object { "$($_.Key): $($_.Value)" }) -join "`n" } else { "" } Write-WarningLog -Message $Message -Context $context } else { Write-Warning "$Message" if ($Additional.Count -gt 0) { $Additional.GetEnumerator() | ForEach-Object { Write-Warning " ▶ $($_.Key): $($_.Value)" } } } } function Write-SafeErrorLog { param([string]$Message, [hashtable]$Additional = @{}) if (Get-Command 'Write-ErrorLog' -ErrorAction SilentlyContinue) { # Convert hashtable to context string for LoggingModule $context = if ($Additional.Count -gt 0) { ($Additional.GetEnumerator() | ForEach-Object { "$($_.Key): $($_.Value)" }) -join "`n" } else { "" } Write-ErrorLog -Message $Message -Context $context } else { Write-Error "$Message" if ($Additional.Count -gt 0) { $Additional.GetEnumerator() | ForEach-Object { Write-Error " ▶ $($_.Key): $($_.Value)" } } } } function Write-SafeDebugLog { param([string]$Message, [hashtable]$Additional = @{}) if (Get-Command 'Write-DebugLog' -ErrorAction SilentlyContinue) { # Convert hashtable to context string for LoggingModule $context = if ($Additional.Count -gt 0) { ($Additional.GetEnumerator() | ForEach-Object { "$($_.Key): $($_.Value)" }) -join "`n" } else { "" } Write-DebugLog -Message $Message -Context $context } else { Write-Verbose "[DEBUG] - $Message" if ($Additional.Count -gt 0) { $Additional.GetEnumerator() | ForEach-Object { Write-Verbose " ▶ $($_.Key): $($_.Value)" } } } } |