Private/Logging/Set-KrLogLevelToPreference.ps1

<#
    .SYNOPSIS
        Sets the PowerShell script log level preferences based on the specified Serilog log level.
    .DESCRIPTION
        This function adjusts the PowerShell script log level preferences (Verbose, Debug, Information, Warning)
        based on the provided Serilog log level.
    .PARAMETER LogLevel
        The Serilog log level to set as the preference.
        Pass the Serilog log level that will be used to set the PowerShell script log level preferences.
    .EXAMPLE
        Set-KrLogLevelToPreference -LogLevel 'Error'
        # This will set the PowerShell script log level preferences to 'SilentlyContinue' for all levels above Error.
#>

function Set-KrLogLevelToPreference {
    [CmdletBinding(SupportsShouldProcess = $true)]
    param(
        [Parameter(Mandatory = $true)]
        [Serilog.Events.LogEventLevel]$LogLevel
    )

    if ($PSCmdlet.ShouldProcess('Set log level preferences')) {
        if ([int]$LogLevel -le [int]([Serilog.Events.LogEventLevel]::Verbose)) {
            Set-Variable VerbosePreference -Value 'Continue' -Scope Global
        } else {
            Set-Variable VerbosePreference -Value 'SilentlyContinue' -Scope Global
        }

        if ([int]$LogLevel -le [int]([Serilog.Events.LogEventLevel]::Debug)) {
            Set-Variable DebugPreference -Value 'Continue' -Scope Global
        } else {
            Set-Variable DebugPreference -Value 'SilentlyContinue' -Scope Global
        }

        if ([int]$LogLevel -le [int]([Serilog.Events.LogEventLevel]::Information)) {
            Set-Variable InformationPreference -Value 'Continue' -Scope Global
        } else {
            Set-Variable InformationPreference -Value 'SilentlyContinue' -Scope Global
        }

        if ([int]$LogLevel -le [int]([Serilog.Events.LogEventLevel]::Warning)) {
            Set-Variable WarningPreference -Value 'Continue' -Scope Global
        } else {
            Set-Variable WarningPreference -Value 'SilentlyContinue' -Scope Global
        }
    }
}