GinShell.Logging/GinShell.Logging.psm1

# ================================
# GinShell.Logging Module
# ================================

# Global defaults (can be overridden from calling script/profile)
$global:GsDefaultLogLevel    = 'verbose'
$global:GsEnableFileLogging  = $true
$global:GsEnableLokiLogging  = $false
$global:GsLogDirectory       = "$env:ProgramData\Ginesys\CloudAdmin\GinShell\"
$global:GsLogFileName        = $null
$global:GsLokiUri            = "http://monitoring.ginesys.cloud:3100"
$global:GsLokiLabels         = $null

# Load functions
$Public  = @(Get-ChildItem -Path "$PSScriptRoot\Public\*.ps1" -ErrorAction SilentlyContinue)
$Private = @(Get-ChildItem -Path "$PSScriptRoot\Private\*.ps1" -ErrorAction SilentlyContinue)

foreach ($file in @($Public + $Private)) {
    try { . $file.FullName }
    catch { Write-Error "Failed to import $($file.FullName): $_" }
}

Export-ModuleMember -Function $Public.BaseName