functions/Write-ErrorLog.ps1
function Write-ErrorLog { <# .SYNOPSIS Writes Error log message .DESCRIPTION Write a log event with the Error level. .PARAMETER MessageTemplate Message template describing the event. .PARAMETER Logger Instance of Serilog.Logger. By default static property [Serilog.Log]::Logger is used. .PARAMETER Exception Exception related to the event. .PARAMETER PropertyValues Objects positionally formatted into the message template. .PARAMETER PassThru Outputs MessageTemplate populated with PropertyValues into pipeline .INPUTS MessageTemplate - Message template describing the event. .OUTPUTS None or MessageTemplate populated with PropertyValues into pipeline if PassThru specified .EXAMPLE PS> Write-ErrorLog 'Error log message' .EXAMPLE PS> Write-ErrorLog -MessageTemplate 'Processed {@Position} in {Elapsed:000} ms.' -PropertyValues $position, $elapsedMs .EXAMPLE PS> Write-ErrorLog 'Error occured' -Exception ([System.Exception]::new('Some exception')) #> [Cmdletbinding()] param( [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)] [AllowEmptyString()] [string]$MessageTemplate, [Parameter(Mandatory = $false)] [Serilog.ILogger]$Logger = [Serilog.Log]::Logger, [Parameter(Mandatory = $false)] [AllowNull()] [System.Exception]$Exception, [Parameter(Mandatory = $false)] [AllowNull()] [System.Management.Automation.ErrorRecord]$ErrorRecord, [Parameter(Mandatory = $false)] [AllowNull()] [object[]]$PropertyValues, [Parameter(Mandatory = $false)] [switch]$PassThru ) Write-Log -LogLevel Error -MessageTemplate $MessageTemplate -Logger $Logger -Exception $Exception -ErrorRecord $ErrorRecord -PropertyValues $PropertyValues -PassThru:$PassThru } |