Private/Log/Write-LogToEventLog.ps1
function Write-LogToEventLog() { <# .SYNOPSIS Outputs the Message to event log. .DESCRIPTION Creates new event log source if not exists. #> [CmdletBinding()] [OutputType([string])] param( [string] $Header, [string[]] $Message, [int] $Severity ) if (!$LogConfiguration -or !$LogConfiguration.LogEventLogSource) { return } if ($LogConfiguration.LogEventLogThreshold -and !(Test-LogSeverity -MessageSeverity $Severity -ConfigSeverity $LogConfiguration.LogEventLogThreshold)) { return } if ($Severity -eq 3) { $entryType = [System.Diagnostics.EventLogEntryType]::Error } elseif ($Severity -eq 2) { $entryType = [System.Diagnostics.EventLogEntryType]::Warning } else { $entryType = [System.Diagnostics.EventLogEntryType]::Information } if (![System.Diagnostics.EventLog]::SourceExists($LogConfiguration.LogEventLogSource)) { [void](New-EventLog -LogName Application -Source $LogConfiguration.LogEventLogSource) } $strBuilder = New-Object System.Text.StringBuilder [void]($strBuilder.Append($Header)) foreach ($msg in $Message) { [void]($strBuilder.Append($msg).Append("`r`n")) } Write-EventLog -LogName Application -Source $LogConfiguration.LogEventLogSource -EntryType $entryType -EventID 1 -Message ($strBuilder.ToString()) } |