LibreDevOpsHelpers.Logger/LibreDevOpsHelpers.Logger.psm1

# Logger.psm1 (or wherever your helper lives)
function _LogMessage
{
    [CmdletBinding()]
    param(
        [ValidateSet('DEBUG', 'INFO', 'WARN', 'ERROR')]
        [string] $Level,
        [string] $Message,
        [string] $InvocationName
    )

    $timestamp = Get-Date -Format 'HH:mm:ss'
    $prefix = "$timestamp - [$InvocationName]"

    switch ( $Level.ToUpper())
    {
        'DEBUG' {
            # Only shows when $DebugPreference -eq 'Continue'
            Write-Debug "$prefix $Message"
        }
        'INFO' {
            Write-Host  "INFO : $prefix $Message"  -ForegroundColor Green
        }
        'WARN' {
            Write-Warning              "$prefix $Message"
        }
        'ERROR' {
            Write-Error                "$prefix $Message"
        }
    }
}

Export-ModuleMember -Function _LogMessage