EndreLogger.psm1

# File: EndreLogger.psm1

function LogWrite
{
   [CmdletBinding()]
   param (
      [Parameter(Mandatory = $true)]
      [string] $LogFolder,

      [Parameter(Mandatory = $false)]
      [string] $LogFileName = "scriptlog.txt",

      [Parameter(Mandatory = $true)]
      [AllowEmptyString()]
      [string] $Text,

      [Parameter(Mandatory = $false)]
      [switch] $Failed,

      [Parameter(Mandatory = $false)]
      [switch] $Warning,

      [Parameter(Mandatory = $false)]
      [switch] $Success,

      [Parameter(Mandatory = $false)]
      [switch] $None
   )

   $prefix = "[ INFO ] "
   if ($Failed) { $prefix = "[ ERROR ] " }
   if ($Warning) { $prefix = "[WARNING] " }
   if ($Success) { $prefix = "[SUCCESS] " }
   if ($None) { $prefix = "[-------] " }

   $dateNow    = $((Get-Date).ToString("yyyy.MM.dd-HH.mm.ss"))
   $dateToday  = Get-Date -Format yyyy-MM-dd

   $scriptLog = Join-Path -Path $LogFolder -ChildPath "$dateToday-$LogFileName"
   $logText    = $dateNow + $prefix + $Text

   Out-File "$scriptLog" -Append -InputObject $logText -Encoding utf8 | Out-Null
}

# This makes the function available to the user
Export-ModuleMember -Function LogWrite