FortigiLoggingLibary.psm1

#######################################################################################################
# FortigiLogging
#
# By Maatschap Fortigi
# Wim van den Heijkant (Wim@Fortigi.nl)
#
#######################################################################################################

Function Write-AILog {
    Param (
        [Parameter(Mandatory=$True)]
        [string]$AIKey,
        [Parameter(Mandatory=$True)]
        $LogMessage,
        [parameter(Mandatory = $false)]
        [ValidateRange(0, 999)]
        [int] $ID
        ) 

    #Load ApplicationInsights DLL
    $Dll = Get-Item "$PSScriptRoot\Microsoft.ApplicationInsights.dll"
    $NoCli = [Reflection.Assembly]::UnsafeLoadFrom($Dll)

    $InstrumentationKey = $AIKey
    $TelClient = New-Object "Microsoft.ApplicationInsights.TelemetryClient"
    $TelClient.InstrumentationKey = $InstrumentationKey


    $LogMessage = $ID.ToString() + ":" + $LogMessage

    $TelClient.TrackEvent($LogMessage)
    $TelClient.Flush()
            
    }