Extends eventlog write function for pre-defined messages and object dump

This commit is contained in:
Christian Stein 2020-03-25 17:50:56 +01:00
parent abb2ab1e35
commit 935c497a7d

View file

@ -2,15 +2,50 @@ function Write-IcingaEventMessage()
{
param(
[int]$EventId = 0,
[string]$Namespace = $null
[string]$Namespace = $null,
[array]$Objects = @()
);
if ($EventId -eq 0 -Or $null -eq $Namespace) {
if ($EventId -eq 0 -Or [string]::IsNullOrEmpty($Namespace)) {
return;
}
$EntryType = $IcingaEventLogEnums[$Namespace][$EventId].EntryType;
$Message = $IcingaEventLogEnums[$Namespace][$EventId].Message;
[string]$EntryType = $IcingaEventLogEnums[$Namespace][$EventId].EntryType;
[string]$Message = $IcingaEventLogEnums[$Namespace][$EventId].Message;
[string]$Details = $IcingaEventLogEnums[$Namespace][$EventId].Details;
if ([string]::IsNullOrEmpty($Details)) {
$Details = '';
}
if ([string]::IsNullOrEmpty($Message)) {
$Message = '';
}
[string]$ObjectDump = '';
if ($Objects.Count -eq 0) {
$ObjectDump = [string]::Format(
'{0}{0}No additional object details provided.',
(New-IcingaNewLine)
);
}
foreach ($entry in $Objects) {
$ObjectDump = [string]::Format(
'{0}{1}',
$ObjectDump,
($entry | Out-String)
);
}
[string]$EventLogMessage = [string]::Format(
'{0}{1}{1}{2}{1}{1}Object dumps if available:{1}{3}',
$Message,
(New-IcingaNewLine),
$Details,
$ObjectDump
);
if ($null -eq $EntryType -Or $null -eq $Message) {
return;
@ -20,5 +55,5 @@ function Write-IcingaEventMessage()
-Source 'Icinga for Windows' `
-EntryType $EntryType `
-EventId $EventId `
-Message $Message;
-Message $EventLogMessage;
}