mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-05-04 15:25:00 -04:00
cli: add Terraform log support (#1620)
* 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
This commit is contained in:
parent
ca1400819d
commit
1d0ee796e8
30 changed files with 688 additions and 238 deletions
75
cli/internal/terraform/logging.go
Normal file
75
cli/internal/terraform/logging.go
Normal file
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
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 ""
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue