Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // UserOut is the customized logrus log used for direct user output UserOut = func() *log.Logger { l := log.New() l.SetOutput(os.Stdout) logLevel := log.InfoLevel if os.Getenv("DDEV_DEBUG") == "true" || os.Getenv("DDEV_VERBOSE") == "true" { logLevel = log.DebugLevel } l.SetLevel(logLevel) log.SetLevel(logLevel) if JSONOutput { l.SetFormatter(DdevOutputJSONFormatter) log.SetFormatter(DdevOutputJSONFormatter) } else { l.SetFormatter(DdevOutputFormatter) log.SetFormatter(DdevOutputFormatter) } return l }() // UserErr is the customized logrus log used for direct user stderr UserErr = func() *log.Logger { l := log.New() l.SetOutput(&ErrorWriter{}) if JSONOutput { l.SetFormatter(DdevOutputJSONFormatter) } else { l.SetFormatter(DdevOutputFormatter) } return l }() // DdevOutputFormatter is the specialized formatter for UserOut DdevOutputFormatter = &TextFormatter{ DisableColors: !ColorsEnabled(), DisableTimestamp: true, } // DdevOutputJSONFormatter is the specialized JSON formatter for UserOut DdevOutputJSONFormatter = &log.JSONFormatter{} // JSONOutput indicates if JSON output mode is enabled, determined by command-line flags. // Parsed early, prior to Cobra flag initialization, to configure logging correctly from start. // Manual parsing is necessary because Cobra registers flags too late for this early use. JSONOutput = ParseBoolFlag("json-output", "j") )
Functions ¶
func ColorsEnabled ¶ added in v1.24.7
func ColorsEnabled() bool
ColorsEnabled returns true if colored output is enabled Implementation from https://no-color.org/
func ParseBoolFlag ¶ added in v1.24.7
ParseBoolFlag scans os.Args backward to apply last-occurrence precedence for a boolean flag. Handles both --long[=true|false] and -s[=true|false] forms. Treats short flag in combined group (e.g. -xj) as implicit true. Returns false if the flag is absent or its value is invalid. Disabled entirely when running under `go test`.
Types ¶
type ErrorWriter ¶ added in v1.21.5
type ErrorWriter struct{}
ErrorWriter allows writing stderr Splitting to stderr approach from https://huynvk.dev/blog/4-tips-for-logging-on-gcp-using-golang-and-logrus
type TextFormatter ¶
type TextFormatter struct {
// Set to true to bypass checking for a TTY before outputting colors.
ForceColors bool
// Force disabling colors.
DisableColors bool
// Disable timestamp logging. useful when output is redirected to logging
// system that already adds timestamps.
DisableTimestamp bool
// Enable logging the full timestamp when a TTY is attached instead of
// the time passed since beginning of execution.
FullTimestamp bool
// TimestampFormat to use for display when a full timestamp is printed
TimestampFormat string
// The fields are sorted by default for a consistent output. For applications
// that log extremely frequently and don't use the JSON formatter this may not
// be desired.
DisableSorting bool
// QuoteEmptyFields will wrap empty fields in quotes if true
QuoteEmptyFields bool
sync.Once
// contains filtered or unexported fields
}
TextFormatter formats logs into text. This is a specialization of https://github.com/sirupsen/logrus/blob/master/text_formatter.go It's intended to be used for all user-oriented output from DDEV