| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- # Logger variables helpers. These functions need the following variables:
- # LOG_LEVEL - The level of logger, default is "debug".
- $log_level = $env:LOG_LEVEL -or "debug"
- $log_colorful = $env:LOG_COLORFUL -or $true
- function GPUStack.Log.Errexit {
- trap {
- $ErrorMessage = $_.Exception.Message
- $ErrorCode = $_.Exception.HResult
- GPUStack.Log.Panic -message $ErrorMessage -code $ErrorCode
- continue
- }
- }
- # Debug level logging.
- function GPUStack.Log.Debug {
- param (
- [Parameter(Position = 0)]
- [string]$message
- )
- if ($log_level -ne "debug") {
- return
- }
- $timestamp = Get-Timestamp
- Write-Output "[$timestamp] [DEBG] $message"
- }
- # Info level logging.
- function GPUStack.Log.Info {
- param (
- [Parameter(Position = 0)]
- [string]$message
- )
- if ($log_level -ne "debug" -and $log_level -ne "info") {
- return
- }
- $timestamp = Get-Timestamp
- if ($log_colorful -eq $true) {
- Write-Host "[$timestamp] " -NoNewline
- Write-Host "[INFO] " -NoNewline -ForegroundColor Blue
- Write-Host $message
- }
- else {
- Write-Output "[$timestamp] [INFO] $message"
- }
- }
- # Warn level logging.
- function GPUStack.Log.Warn {
- param (
- [Parameter(Position = 0)]
- [string]$message
- )
- $timestamp = Get-Timestamp
- if ($log_colorful -eq $true) {
- Write-Host "[$timestamp] " -NoNewline
- Write-Host "[WARN] " -NoNewline -ForegroundColor Yellow
- Write-Host $message
- }
- else {
- Write-Output "[$timestamp] [WARN] $message"
- }
- }
- # Error level logging, log an error but keep going, don't dump the stack or exit.
- function GPUStack.Log.Error {
- param (
- [Parameter(Position = 0)]
- [string]$message
- )
- $timestamp = Get-Timestamp
- if ($log_colorful -eq $true) {
- Write-Host "[$timestamp] " -NoNewline
- Write-Host "[ERRO] " -NoNewline -ForegroundColor Red
- Write-Host $message
- }
- else {
- Write-Output "[$timestamp] [ERRO] $message"
- }
- }
- # Fatal level logging, log an error but exit with 1, don't dump the stack or exit.
- function GPUStack.Log.Fatal {
- param (
- [Parameter(Position = 0)]
- [string]$message
- )
- $timestamp = Get-Timestamp
- if ($log_colorful -eq $true) {
- Write-Host "[$timestamp] " -NoNewline
- Write-Host "[FATA] " -NoNewline -ForegroundColor Red
- Write-Host $message
- }
- else {
- Write-Output "[$timestamp] [FATA] $message"
- }
- exit 1
- }
- # Panic level logging, dump the error stack and exit.
- function GPUStack.Log.Panic {
- param (
- [string]$message,
- [int]$code = 1
- )
- $timestamp = Get-Timestamp
- $formattedMessage = "[$timestamp] [FATA] $message"
- if ($log_colorful -eq $true) {
- Write-Error $formattedMessage
- } else {
- Write-Output $formattedMessage
- }
- $customStackTrace = [System.Diagnostics.StackTrace]::new()
- $customStackTrace.GetFrames() | ForEach-Object {
- Write-Error (" {0}: {1}" -f $_.GetFileName(), $_.GetFileLineNumber())
- }
- exit $code
- }
- function Get-Timestamp {
- return $(Get-Date -Format 'MMdd HH:mm:ss')
- }
|