50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package plugin
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// levelToColor возвращает цвет для уровня события Sentry
|
|
func levelToColor(level string) string {
|
|
switch strings.ToLower(level) {
|
|
case "fatal":
|
|
return "#B10DC9" // фиолетовый, критический
|
|
case "error":
|
|
return "#FF4136" // красный
|
|
case "warning":
|
|
return "#FF851B" // оранжевый
|
|
case "log":
|
|
return "#AAAAAA" // серый
|
|
case "info":
|
|
return "#0074D9" // синий
|
|
case "debug":
|
|
return "#2ECC40" // зелёный
|
|
default:
|
|
return "#AAAAAA" // серый для неизвестных
|
|
}
|
|
}
|
|
|
|
// getTagFromArray извлекает значение тега из массива тегов
|
|
func getTagFromArray(tags [][]string, key string) string {
|
|
for _, t := range tags {
|
|
if len(t) == 2 && t[0] == key {
|
|
return t[1]
|
|
}
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// formatStacktrace форматирует стектрейс для отображения
|
|
func formatStacktrace(ex *SentryExceptionValue) string {
|
|
if ex == nil || len(ex.Stacktrace.Frames) == 0 {
|
|
return ""
|
|
}
|
|
|
|
lines := make([]string, 0, len(ex.Stacktrace.Frames))
|
|
for _, f := range ex.Stacktrace.Frames {
|
|
lines = append(lines, fmt.Sprintf("%s:%d %s - %s", f.Filename, f.Lineno, f.Function, f.ContextLine))
|
|
}
|
|
return strings.Join(lines, "\n")
|
|
}
|