k3s/vendor/github.com/lxc/lxd/shared/logger/format.go

26 lines
538 B
Go

package logger
import (
"encoding/json"
"fmt"
"runtime"
)
// Pretty will attempt to convert any Go structure into a string suitable for logging
func Pretty(input interface{}) string {
pretty, err := json.MarshalIndent(input, "\t", "\t")
if err != nil {
return fmt.Sprintf("%v", input)
}
return fmt.Sprintf("\n\t%s", pretty)
}
// GetStack will convert the Go stack into a string suitable for logging
func GetStack() string {
buf := make([]byte, 1<<16)
n := runtime.Stack(buf, true)
return fmt.Sprintf("\n\t%s", buf[:n])
}