internal/Set-LogFile.ps1

function Set-LogFile
{
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory = $false)]
        [string] $Path = "$env:LOCALAPPDATA",
        [Parameter(Mandatory = $false)]
        [string] $ProjectName
    )

    $ErrorActionPreference = 'Stop'
    $projectName = 'EmbedDataLanding'
    $logFolder = "$path\Logs"
    if (!(Test-Path $logfolder))
    {
        New-Item -Path $logFolder -ItemType Directory -Force
        Write-PSFMessage -Level Host -Message "Created $logFolder folder for logging"
    }

    $LogFile = New-Item -Path $logFolder -ItemType File -Name "$ProjectName-$(Get-date -f 'yyyyMMddHHmmss').txt" -Force
    if (Test-Path $logFile)
    {
        Set-PSFLoggingProvider -Name logfile -FilePath $LogFile -Enabled $true
        Write-PSFMessage -Level Host -Message "Initialised log file: $LogFile"
        Return
    }
    else
    {
        Write-PSFMessage -Level Critical -Message "Failed to initialise $logFile" -ErrorRecord $_ -ErrorAction Stop
    }
}