mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-15 02:44:24 -05:00
1d0ee796e8
* add Terraform logging * add TF logging to CLI * fix path * only create file if logging is enabled * update bazel files * register persistent flags manually * clidocgen * move logging code to separate file * reword yes flag parsing error * update bazel buildfile * factor out log level setting
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 ""
|
|
}
|
|
}
|