mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-22 06:05:12 -05:00
76 lines
1.6 KiB
Go
76 lines
1.6 KiB
Go
|
/*
|
||
|
Copyright (c) Edgeless Systems GmbH
|
||
|
|
||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||
|
*/
|
||
|
|
||
|
package terraform
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
// LogLevelNone represents a log level that does not produce any output.
|
||
|
LogLevelNone LogLevel = iota
|
||
|
// LogLevelError enables log output at ERROR level.
|
||
|
LogLevelError
|
||
|
// LogLevelWarn enables log output at WARN level.
|
||
|
LogLevelWarn
|
||
|
// LogLevelInfo enables log output at INFO level.
|
||
|
LogLevelInfo
|
||
|
// LogLevelDebug enables log output at DEBUG level.
|
||
|
LogLevelDebug
|
||
|
// LogLevelTrace enables log output at TRACE level.
|
||
|
LogLevelTrace
|
||
|
// LogLevelJSON enables log output at TRACE level in JSON format.
|
||
|
LogLevelJSON
|
||
|
)
|
||
|
|
||
|
// LogLevel is a Terraform log level.
|
||
|
// As per https://developer.hashicorp.com/terraform/internals/debugging
|
||
|
type LogLevel int
|
||
|
|
||
|
// ParseLogLevel parses a log level string into a Terraform log level.
|
||
|
func ParseLogLevel(level string) (LogLevel, error) {
|
||
|
switch strings.ToUpper(level) {
|
||
|
case "NONE":
|
||
|
return LogLevelNone, nil
|
||
|
case "ERROR":
|
||
|
return LogLevelError, nil
|
||
|
case "WARN":
|
||
|
return LogLevelWarn, nil
|
||
|
case "INFO":
|
||
|
return LogLevelInfo, nil
|
||
|
case "DEBUG":
|
||
|
return LogLevelDebug, nil
|
||
|
case "TRACE":
|
||
|
return LogLevelTrace, nil
|
||
|
case "JSON":
|
||
|
return LogLevelJSON, nil
|
||
|
default:
|
||
|
return LogLevelNone, fmt.Errorf("invalid log level %s", level)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// String returns the string representation of a Terraform log level.
|
||
|
func (l LogLevel) String() string {
|
||
|
switch l {
|
||
|
case LogLevelError:
|
||
|
return "ERROR"
|
||
|
case LogLevelWarn:
|
||
|
return "WARN"
|
||
|
case LogLevelInfo:
|
||
|
return "INFO"
|
||
|
case LogLevelDebug:
|
||
|
return "DEBUG"
|
||
|
case LogLevelTrace:
|
||
|
return "TRACE"
|
||
|
case LogLevelJSON:
|
||
|
return "JSON"
|
||
|
default:
|
||
|
return ""
|
||
|
}
|
||
|
}
|