diff --git a/lib/core/logging/Icinga_EventLog_Enums.psm1 b/lib/core/logging/Icinga_EventLog_Enums.psm1 new file mode 100644 index 0000000..30cd05b --- /dev/null +++ b/lib/core/logging/Icinga_EventLog_Enums.psm1 @@ -0,0 +1,14 @@ +<# + # This script will provide 'Enums' we can use for proper + # error handling and to provide more detailed descriptions + # + # Example usage: + # $IcingaEventLogEnums[2000] + #> + [hashtable]$IcingaEventLogEnums += @{ + 'Framework' = @{ + # TODO: Add event log messages + } +}; + +Export-ModuleMember -Variable @( 'IcingaEventLogEnums' ); diff --git a/lib/core/logging/Write-IcingaEventMessage.psm1 b/lib/core/logging/Write-IcingaEventMessage.psm1 new file mode 100644 index 0000000..bfb4bb5 --- /dev/null +++ b/lib/core/logging/Write-IcingaEventMessage.psm1 @@ -0,0 +1,24 @@ +function Write-IcingaEventMessage() +{ + param( + [int]$EventId = 0, + [string]$Namespace = $null + ); + + if ($EventId -eq 0 -Or $null -eq $Namespace) { + return; + } + + $EntryType = $IcingaEventLogEnums[$Namespace][$EventId].EntryType; + $Message = $IcingaEventLogEnums[$Namespace][$EventId].Message; + + if ($null -eq $EntryType -Or $null -eq $Message) { + return; + } + + Write-EventLog -LogName Application ` + -Source 'Icinga for Windows' ` + -EntryType $EntryType ` + -EventId $EventId ` + -Message $Message; +}