package level import ( "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace" ) type SyslogLevel uint8 const ( EMERG SyslogLevel = iota ALERT CRIT ERR WARNING NOTICE INFO DEBUG ) // Level Keyword Description // 0 emergencies System is unusable // 1 alerts Immediate action is needed // 2 critical Critical conditions exist // 3 errors Error conditions exist // 4 warnings Warning conditions exist // 5 notification Normal, but significant, conditions exist // 6 informational Informational messages // 7 debugging Debugging messages func (l SyslogLevel) String() string { switch l { case EMERG: return "EMERG" case ALERT: return "ALERT" case CRIT: return "CRIT" case ERR: return "ERR" case WARNING: return "WARN" case NOTICE: return "NOTICE" case INFO: return "INFO" case DEBUG: return "DEBUG" default: return "CRIT" } } func LevelFromString(level string) SyslogLevel { switch level { case "EMERG": return EMERG case "ALERT": return ALERT case "CRIT": return CRIT case "ERR": return ERR case "WARN": return WARNING case "NOTICE": return NOTICE case "INFO": return INFO case "DEBUG": return DEBUG default: return CRIT } } func (lvl SyslogLevel) SetAttribute(att ...attribute.KeyValue) trace.SpanStartEventOption { att = append(att, attribute.Int("level", int(lvl))) return trace.WithAttributes( att..., ) }