powershell_addlog

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
powershell_addlog [2019/11/29 10:37] – [Cas n°2] nekanpowershell_addlog [2021/03/05 16:09] (Version actuelle) nekan
Ligne 1: Ligne 1:
-~~CLOSETOC~~ +====== Add-Log - Ajouter des messages dans un fichier log et dans la console ====== 
-====== Add-Log - Ajouter des message dans un fichier log et dans la console ======+<label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/11/29 09:18//
  
 La gestion des inscriptions dans un fichier log ou l'affichage d'information dans la console sont des étapes cruciales dans un script. L'affichage console permet à un administrateur de savoir ce qu'il se passe en temps réel et les logs, après coup. Il est donc important d'inscrire et d'afficher les informations lorsque c'est nécessaire. C'est le but de cette fonction. La gestion des inscriptions dans un fichier log ou l'affichage d'information dans la console sont des étapes cruciales dans un script. L'affichage console permet à un administrateur de savoir ce qu'il se passe en temps réel et les logs, après coup. Il est donc important d'inscrire et d'afficher les informations lorsque c'est nécessaire. C'est le but de cette fonction.
Ligne 6: Ligne 6:
 ===== Script ===== ===== Script =====
  
-<code:ps1># Fonction d'écriture du log général et d'affichage console+<sxh powershell># Fonction d'écriture de log dans un fichier et/ou dans la console
 Function Add-Log() Function Add-Log()
 { {
- <# +    <# 
- .SYNOPSIS +        .SYNOPSIS 
- Fonction d'écriture du log général et d'affichage console (si -Console ou -ConsoleOnly) +            Fonction d'écriture de log dans un fichier et/ou dans la console. 
-  +      
- .DESCRIPTION +        .DESCRIPTION 
- Cette Cmdlet enregistre une information horodatée dans le fichier spécifié. L'information est précédée d'une étiquette précisant son degré d'importance. +            Cette Cmdlet enregistre une information horodatée dans le fichier spécifié. L'information est précédée d'une étiquette précisant son degré d'importance. 
-  +      
- .PARAMETER  Type +        .PARAMETER  Type 
- Précise le degré d'importance du message à enregistrer. Les valeurs possibles sont INFO, GOOD, WARN, CRIT et UNKN. +            Précise le degré d'importance du message à enregistrer. Les valeurs possibles sont INFO, GOOD, WARN, CRIT et UNKN. 
-  +      
- .PARAMETER  Message +        .PARAMETER  Message 
- Indique le texte à enregistrer. +            Indique le texte à enregistrer. 
-  +      
- .PARAMETER  Line +        .PARAMETER  Line 
- Enregistre une ligne (séparation) dans le fichier de log. +            Enregistre une ligne (séparation) dans le fichier de log. 
-  +      
- .PARAMETER  LogFile +        .PARAMETER  LogFile 
- Chemin du fichier log dans lequel enregister les informations. +            Chemin du fichier log dans lequel enregister les informations. 
-  +      
- .PARAMETER  Console +        .PARAMETER  Out 
- Affiche dans la console les informations enregistrées dans le fichier log. +            Indique où doit être inscrit les logs : 
- Les informations bénéficient d'une coloration syntaxique spécifique à chaque niveau d'importance. +                LogFile : le message est inscrit uniquement dans le fichier log indiqué
-  +                Console : le message est affiché uniquement dans la console. Une coloration syntaxique sera associé au niveau type de message
- .PARAMETER  ConsoleOnly +                Both    : le message est à la fois inscrit dans le fichier log et affiché dans la console. 
- Affiche les informations uniquement dans la console. +      
- Les informations bénéficient d'une coloration syntaxique spécifique à chaque niveau d'importance+        .EXAMPLE 
-  +            Add-Log -LogFile C:\test.log -Type INFO -Message "Ceci est un test" -Out LogFile 
- .EXAMPLE +      
- Add-Log -LogFile C:\test.log -Type INFO -Message "Ceci est un test" +            Exécuté le 21/09/2012 à 13h24.57, cette commande ajoutera dans le fichier C:\test.log, une ligne sous le format :  
-  +                    21/09/2012 13:24:57     INFO     Ceci est un test 
- Exécuté le 21/09/2012 à 13h24.57, cettecommande ajoutera dans le fichier C:\test.log, une ligne sous le format :  +      
-     21/09/2012 13:24:57     INFO     Ceci est un test +        .EXAMPLE 
-  +            Add-Log -LogFile C:\test.log -Line -Out LogFile 
- .EXAMPLE +      
- Add-Log -LogFile C:\test.log -Line +            Ajoute une ligne dans le fichier C:\test.log 
-  +  
- Ajoute une ligne dans le fichier C:\test.log+        .INPUTS 
 +            Pas de pipeline. Seulement les arguments nommés. 
 +      
 +        .OUTPUTS 
 +            Affichage console avec le paramètre -Out (Console ou Both) 
 +            Ajout de données dans un fichier spécifié avec le paramètre -Out (LogFile ou Both) 
 +      
 +        .NOTES 
 +            Crée par Nicolas THOREZ, Shyrka System 
 +      
 +        .LINK 
 +            https://www.shyrkasystem.com 
 +      
 +    #> 
 +      
 +    Param 
 +    ( 
 +        # Type de Message 
 +        [Parameter(Mandatory = $false, ValueFromPipeline = $false)] 
 +        [ValidateSet("INFO", "GOOD", "CRIT", "WARN", "UNKN")] 
 +        [string]$Type, 
 +        # Message à enregistrer et/ou afficher 
 +        [Parameter(Mandatory = $false, ValueFromPipeline = $false)] 
 +        [string]$Message, 
 +        # Switch pour demander de tracer une ligne (séparation) dans le log 
 +        [Parameter(Mandatory = $false, ValueFromPipeline = $false)] 
 +        [switch]$Line, 
 +        # Fichier dans lequel enregistrer les logs 
 +        [Parameter(Mandatory = $true, ValueFromPipeline = $false)] 
 +        [string]$LogFile, 
 +        # Mode de sortie (log, console ou les deux) 
 +        [Parameter(Mandatory = $true, ValueFromPipeline = $false)] 
 +        [ValidateSet("LogFile", "Console", "Both")] 
 +        [string]$Out 
 +    )
  
- .INPUTS +    # On teste si le fichier existe sinon on le crée 
- Pas de pipeline. Seulement les argumentss nommées. +    If (-not (Test-Path -Path $LogFile)) 
-  +    { 
- .OUTPUTS +        New-Item -Path $LogFile -ItemType File | Out-Null 
- Affichage console si -Console. +    } 
- Ajout de données dans un fichier spécifié. +      
-  +    If ($Line) 
- .NOTES +    
- Crée par Nicolas THOREZ, Shyrka System +        # Si on a activer le switch -Line, on ajoute une ligne dans le fichier log un ligne 
-  +        If ($Out -ne "LogFile"
- .LINK +        
- https://www.shyrkasystem.com +            On affiche dans la console 
-  +            Write-Host "----------------------------------------------------------------------" 
- #> +        
-  +        If ($Out -ne "Console"
- Param +        
- ( +            # On inscrit dans le fichier log 
- # Type de Message +            Add-Content -Path $LogFile -Value "----------------------------------------------------------------------" 
- [Parameter(Mandatory = $false,ValueFromPipeline = $false)+        
- [ValidateSet("INFO", "GOOD", "CRIT", "WARN", "UNKN")] +    
- [string]$Type, +    Else 
- # Message à enregistrer et/ou afficher +    
- [Parameter(Mandatory = $false, ValueFromPipeline = $false)] +        # Sinon, on traite le message 
- [string]$Message, +        $CheckTime = Get-Date -Format G 
- # Switch pour demander de tracer une ligne (séparation) dans le log +        If ($Out -ne "LogFile"
- [Parameter(Mandatory = $false, ValueFromPipeline = $false)] +        
- [switch]$Line, +            On affiche le message avec une certaine coloration syntaxique 
- # Fichier dans lequel enregistrer les logs +            Switch ($Type) 
- [Parameter(Mandatory = $true, ValueFromPipeline = $false)] +            
- [string]$LogFile, +                "INFO" 
- # Mode verbeux, affichage des informations dans la console avec coloration syntaxique +                
- [Parameter(Mandatory = $false, ValueFromPipeline = $false)] +                    $Color = "cyan
- [switch]$Console, +                
- # Mode console uniquement, pas d'inscription dans le fichier log +                "GOOD
- [Parameter(Mandatory = $false, ValueFromPipeline = $false)] +                
- [switch]$ConsoleOnly +                    $Color = "green
- ) +                
-  +                "WARN
- If ($Line) +                
-+                    $Color = "yellow
- # Si on a activer le switch -Line, on ajoute une ligne dans le fichier log un ligne +                
- If (($Console) -or ($ConsoleOnly)+                "CRIT
- +                
- Si -Console est activée, on affiche dans la console +                    $Color = "red
- Write-Host "----------------------------------------------------------------------" +                
- +                "UNKN" 
- If (-not $ConsoleOnly+                
- +                    $Color = "magenta
- Add-Content -Path $LogFile -Value "----------------------------------------------------------------------" +                
- +            
-+            Write-Host "$CheckTime     " -NoNewline 
- Else +            Write-Host "$type     " -NoNewline -ForegroundColor $Color 
-+            Write-Host $Message 
- # Sinon, on traite le message +        
- $CheckTime = Get-Date -Format 'G' +        If ($Out -ne "Console"
- If (($Console) -or ($ConsoleOnly)+        
- +            Add-Content -Path $LogFile -Value "$CheckTime     $Type     $Message" 
- Si -Console est activé, on affiche le message avec une certaine coloration syntaxique +        
- Switch ($Type) +    }
- +
- "INFO" +
- +
- $Color = "green+
- +
- "WARN+
- +
- $Color = "yellow+
- +
- "CRIT+
- +
- $Color = "red+
- +
- "UNKN+
- +
- $Color = "magenta+
- +
- default +
- +
- $Color = "cyan+
- +
- +
- Write-Host "$CheckTime     " -NoNewline +
- Write-Host "$type     " -NoNewline -ForegroundColor $Color +
- Write-Host $Message +
- +
- If (-not $ConsoleOnly+
- +
- Add-Content -Path $LogFile -Value "$CheckTime     $Type     $Message" +
- +
- }+
 } }
-</code>+</sxh>
  
 ===== Exemple ===== ===== Exemple =====
Ligne 145: Ligne 148:
  
 Les commandes suivantes : Les commandes suivantes :
-<code:ps1>Add-Log -LogFile C:\Temp\Test.log -Type INFO -Message "Ceci est un message d'informations+<sxh powershell>Add-Log -LogFile C:\Temp\Test.log -Type INFO -Message "Ceci est un message d'information-Out LogFile 
-Add-Log -LogFile C:\Temp\Test.log -Type WARN -Message "Ceci est un avertissement" +Add-Log -LogFile C:\Temp\Test.log -Type WARN -Message "Ceci est un avertissement" -Out LogFile 
-Add-Log -LogFile C:\Temp\Test.log -Type CRIT -Message "Ceci est une alerte critique"</code>+Add-Log -LogFile C:\Temp\Test.log -Type CRIT -Message "Ceci est une alerte critique" -Out LogFile</sxh>
  
 vont ajouter des informations dans le fichier ''C:\Temp\Test.log''. La lecture de ce fichier donnera : vont ajouter des informations dans le fichier ''C:\Temp\Test.log''. La lecture de ce fichier donnera :
-<file>29/11/2019 10:06:07     INFO     Ceci est un message d'informations+<file>29/11/2019 10:06:07     INFO     Ceci est un message d'information
 29/11/2019 10:06:07     WARN     Ceci est un avertissement 29/11/2019 10:06:07     WARN     Ceci est un avertissement
 29/11/2019 10:06:09     CRIT     Ceci est une alerte critique 29/11/2019 10:06:09     CRIT     Ceci est une alerte critique
Ligne 157: Ligne 160:
 ==== Cas n°2 ==== ==== Cas n°2 ====
  
-En ajoutant -Console +En ajoutant l'affichage console 
-<code:ps1>Add-Log -LogFile C:\Temp\Test.log -Type INFO -Message "Ceci est un message d'informations" -Console +<sxh powershell>Add-Log -LogFile C:\Temp\Test.log -Type INFO -Message "Ceci est un message d'information" -Out Both 
-Add-Log -LogFile C:\Temp\Test.log -Type WARN -Message "Ceci est un avertissement" -Console +Add-Log -LogFile C:\Temp\Test.log -Type WARN -Message "Ceci est un avertissement" -Out Both 
-Add-Log -LogFile C:\Temp\Test.log -Type CRIT -Message "Ceci est une alerte critique" -Console</code>+Add-Log -LogFile C:\Temp\Test.log -Type CRIT -Message "Ceci est une alerte critique" -Out Both</sxh>
  
 On obtient dans le fichier log : On obtient dans le fichier log :
-<file>29/11/2019 10:09:21     INFO     Ceci est un message d'informations +<file>12/12/2019 10:09:11     INFO     Ceci est un message d'information 
-29/11/2019 10:09:21     WARN     Ceci est un avertissement +12/12/2019 10:09:11     WARN     Ceci est un avertissement 
-29/11/2019 10:09:23     CRIT     Ceci est une alerte critique+12/12/2019 10:09:11     CRIT     Ceci est une alerte critique
 </file> </file>
  
 et dans la console : et dans la console :
-<WRAP center round box 90%> +<image shape="thumbnail">{{ :powershell:add-log_001.png |}}</image>
-29/11/2019 10:09:21     <color #22b14c>INFO</color>     Ceci est un message d'informations +
-29/11/2019 10:09:21     <color #fff200>WARN</color>     Ceci est un avertissement +
-29/11/2019 10:09:23     <color #ed1c24>CRIT</color>     Ceci est une alerte critique +
-</WRAP> +
- +
- --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/11/29 09:18//+
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
  
  
  • powershell_addlog.1575020257.txt.gz
  • Dernière modification : 2019/11/29 08:37
  • (modification externe)