1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
package logger
import (
"encoding/json"
"fmt"
"runtime"
)
// Pretty will attempt to convert any Go structure into a string suitable for logging.
func Pretty(input any) 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])
}
|