Le istruzioni Write-Debug devono essere lasciate nel codice PowerShell di produzione?

1

Questa è una delle mie funzioni che ho in un modulo:

Function Get-DatabaseUser
{
    [CmdletBinding()]
    Param()
    Write-Verbose 'Getting database...'
    $Database = Get-Database
    Write-Debug('Value of $Database: {0}' -f $Database)

    if($Database -eq $null)
    {
        $ErrorRecord = New-ErrorRecord "Database could not be accessed." NullReferenceException 'DatabaseInaccessible' ObjectNotFound
        $PSCmdlet.ThrowTerminatingError($ErrorRecord)
    }

    Write-Verbose 'Refreshing user list...'
    $Database.Users.Refresh()

    Write-Verbose 'Getting user list...'
    $Users = $Database.Users |
                       Where-Object { $_.LoginType -eq 'WindowsUser' } |
                       Select-Object -Property Name, Login

    Write-Debug("Number of users: {0}" -f $Users.Count)

    Write-Verbose 'Writing user list to output...'
    Write-Output($Users)
}

C'è qualche motivo per mantenere le dichiarazioni Write-Debug nel mio codice di produzione, o queste dichiarazioni potrebbero essere sostituite con Write-Verbose ? Ad esempio, sostituendo

Write-Debug("Number of users: {0}" -f $Users.Count)

con

Write-Verbose '3 users found.'

Non sono sicuro dei componenti interni di PowerShell e se Write-Debug genera un sovraccarico significativo, ma mi sto ancora chiedendo se questo abbia un posto in uno script usato in produzione o puramente per le versioni di debug dei miei script / moduli .

    
posta Jake 26.09.2015 - 01:48
fonte

1 risposta

1

Non riesco a immaginare che Write-Debug aggiunga un sovraccarico significativo a uno script PowerShell. Anche se fosse così importante? In genere non scrivo script per operazioni con prestazioni critiche, di solito sto solo cercando di automatizzare alcuni compiti banali che sono stanco di fare manualmente. Non sarà la fine del mondo se non spremerò fino all'ultima goccia di prestazioni da uno dei miei script.

Personalmente, lascio tutte le mie dichiarazioni di Write-Debug nei miei script di produzione. Le informazioni che ho segnalato con Write-Debug tendono ad essere di natura diversa rispetto alle informazioni che ho segnalato con Write-Verbose , quindi non vorrei mischiare le due cose insieme.

    
risposta data 03.12.2015 - 21:49
fonte

Leggi altre domande sui tag