Public/Logging/core/Set-KrLoggerLevelSwitch.ps1
<# .SYNOPSIS Sets the minimum logging level for a level switch. .DESCRIPTION Sets the minimum logging level for a specified level switch. If ToPreference is specified, the logging level will be set to the user's preference. .PARAMETER Logger An instance of Serilog.Core.Logger to set the level switch for. It's mutually exclusive with the LoggerName parameter. .PARAMETER LoggerName The name of a registered logger to set the level switch for. It's mutually exclusive with the Logger parameter. .PARAMETER MinimumLevel The minimum logging level to set for the switch. .EXAMPLE PS> Set-KrLoggerLevelSwitch -LoggerName "MyLogger" -MinimumLevel Warning Sets the minimum logging level of the level switch for the logger named "MyLogger" to Warning. .EXAMPLE PS> Set-KrLoggerLevelSwitch -Logger $myLogger -MinimumLevel Error Sets the minimum logging level of the level switch for the specified logger instance to Error. #> function Set-KrLoggerLevelSwitch { [KestrunRuntimeApi('Everywhere')] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '')] [CmdletBinding(DefaultParameterSetName = 'LoggerName')] param( [Parameter(Mandatory = $false, ParameterSetName = 'LoggerName')] [string]$LoggerName, [Parameter(Mandatory = $true, ParameterSetName = 'Logger')] [Serilog.Core.Logger]$Logger, [Parameter(Mandatory = $true)] [Serilog.Events.LogEventLevel]$MinimumLevel ) if ([string]::IsNullOrEmpty($LoggerName)) { $LoggerName = [Kestrun.Logging.LoggerManager]::GetName($Logger) } if ([string]::IsNullOrEmpty($LoggerName)) { throw [System.ArgumentException]::new("LoggerName cannot be null or empty.") } [Kestrun.Logging.LoggerManager]::SetLevelSwitch($LoggerName, $MinimumLevel) } |