TrainingUtils.IEVM.psm1
<#
.Synopsis Función para loguear información. .Description Esta función nos permite escribir logs de diferentes tipos para poder posteriormente persistirlo en disco. .Parameter logType Tipo de log: INFO, WARNING, ERROR, DEBUG y VERBOSE. .Parameter message Mensaje que queremos escribir en el log. .Parameter logFilePath Path donde vamos a guardar nuestro fichero de log. .Parameter Verboses Mostrar resultado por pantalla de logs tipo VERBOSE. .Parameter Debugs Mostrar resultado por pantalla de logs tipo DEBUG. .Example Write-TrainingUtilsLog -logType "INFO" -message "Esto es un mensaje informativo" -logFilePath ".\scriptLogging.log" #> function Write-TrainingUtilsLog() { [CmdletBinding()] param( [ Parameter(Mandatory=$true, HelpMessage="Tipo de log: INFO, WARNING, ERROR, DEBUG y VERBOSE") ] [ Alias("type") ] [ ValidateSet("INFO", "WARNING", "ERROR", "DEBUG", "VERBOSE") ] [string]$logType, [ Parameter(Mandatory=$true, HelpMessage="Mensaje que queremos escribir en el log") ] [ Alias("msg") ] [string]$message, [ Parameter(Mandatory=$false, HelpMessage="Path donde vamos a guardar nuestro fichero de log") ] [ Alias("path") ] [string]$logFilePath=".\scriptLogging.log", [ Parameter(Mandatory=$false, HelpMessage="Mostrar resultado por pantalla de logs tipo VERBOSE") ] [switch]$Verboses=$false, [ Parameter(Mandatory=$false, HelpMessage="Mostrar resultado por pantalla de logs tipo DEBUG") ] [switch]$Debugs=$false ) $currentDate = Get-Date -Format "MM/dd/yyyy HH:mm K"; $log = "$($currentDate) ($($logType)): $($message)" Write-TrainingUtilsToLogPrint -log $log -logType $logType -verboses $Verboses -debugs $Debugs; Write-TrainingUtilsToLogFile -log $log -logFilePath $logFilePath; } function Write-TrainingUtilsToLogPrint([string]$log, [string]$logType, [boolean]$verboses, [boolean]$debugs) { if ( ($logType -eq "DEBUG" -and $debugs) -or ($logType -eq "VERBOSE" -and $verboses) ) { Write-Host $log; } elseif ( ($logType -eq "INFO") -or ($logType -eq "WARNING") -or ($logType -eq "ERROR") ) { Write-Host $log; } } function Write-TrainingUtilsToLogFile([string]$log, [string]$logFilePath) { Write-Host ($log | Add-Content $logFilePath); } |