Private/Write-Log.ps1
function Write-Log { param ( $message , $foregroundColor = "Blue" ) # Only do this work if verbose is active if ($VerbosePreference -ne 'SilentlyContinue') { # Map color names to ANSI escape codes $colorMap = @{ 'Blue' = '94' 'Green' = '92' 'Yellow' = '93' 'Red' = '91' # Add more colors as needed } $colorCode = '94' # Default to blue # Use ANSI escape sequences for color in verbose output $colorStart = "`e[${colorCode}m" $colorEnd = "`e[0m" $coloredMessage = "${colorStart}[$([datetime]::Now.ToString("s"))] $message${colorEnd}" $Host.UI.WriteVerboseLine($coloredMessage) } else { # Standard verbose message when not directly outputting Write-Verbose "[$([datetime]::Now.ToString("s"))] $message" } } |