@@ -17,50 +17,58 @@ namespace logs
1717
1818namespace api_logs = opentelemetry::logs;
1919
20- Recordable::Recordable () noexcept
21- {
22- event_builder_.Reset (" OpenTelemetry-Logs" );
23-
24- utils::PopulateAttribute (" __csver__" , static_cast <uint16_t >(0x400 ), event_builder_);
25- }
20+ Recordable::Recordable () noexcept {}
2621
2722void Recordable::SetSeverity (api_logs::Severity severity) noexcept
2823{
2924 uint8_t severity_value = static_cast <uint8_t >(severity);
30- if (severity_value == 0 || severity_value > 24 )
25+ if (severity_value > 24 )
3126 {
3227 OTEL_INTERNAL_LOG_ERROR (
3328 " [user_events Log Exporter] Recordable: invalid severity value: " << severity_value);
34- severity_value = 1 ;
29+ severity_value = 0 ;
3530 }
3631
32+ severity_ = severity_value;
3733 level_index_ = (severity_value - 1 ) >> 2 ;
38-
39- cs_part_b_bookmark_size_ += 2 ;
40- event_builder_.AddValue (" severityNumber" , static_cast <uint16_t >(severity_value),
41- event_field_format_default);
42- auto severity_text = api_logs::SeverityNumToText[static_cast <uint32_t >(severity_value)].data ();
43- event_builder_.AddString <char >(" severityText" , severity_text, event_field_format_default);
4434}
4535
4636void Recordable::SetBody (const opentelemetry::common::AttributeValue &message) noexcept
4737{
48- // Set intial bookmark size to 1 for body below.
49- cs_part_b_bookmark_size_++;
38+ if (severity_ == 0 )
39+ {
40+ OTEL_INTERNAL_LOG_ERROR (" [user_events Log Exporter] Recordable: severity is not set." );
41+ return ;
42+ }
43+
44+ auto event_name = !event_name_.empty () ? event_name_.data () : " OpenTelemetryLogs" ;
45+
46+ event_builder_.Reset (event_name);
47+ utils::PopulateAttribute (" __csver__" , static_cast <uint16_t >(0x400 ), event_builder_);
48+
5049 event_builder_.AddStruct (" PartB" , 1 , 0 , &cs_part_b_bookmark_);
5150 utils::PopulateAttribute (" _typeName" , " Log" , event_builder_);
51+
52+ event_builder_.AddValue (" severityNumber" , static_cast <uint16_t >(severity_),
53+ event_field_format_default);
54+ auto severity_text = api_logs::SeverityNumToText[static_cast <uint32_t >(severity_value)].data ();
55+ event_builder_.AddString <char >(" severityText" , severity_text, event_field_format_default);
56+ cs_part_b_bookmark_size_ = 4 ; // with the below body counted because it is available.
57+
58+ if (has_event_id_)
59+ {
60+ utils::PopulateAttribute (" eventId" , event_id_, event_builder_);
61+ cs_part_b_bookmark_size_++;
62+ }
63+
5264 utils::PopulateAttribute (" body" , message, event_builder_);
5365}
5466
5567void Recordable::SetEventId (int64_t id, nostd::string_view name) noexcept
5668{
57- cs_part_b_bookmark_size_++;
58- utils::PopulateAttribute (" eventId" , id, event_builder_);
59- if (!name.empty ())
60- {
61- cs_part_b_bookmark_size_++;
62- utils::PopulateAttribute (" name" , name, event_builder_);
63- }
69+ has_event_id_ = true ;
70+ event_id_.id_ = id;
71+ event_name_ = name;
6472}
6573
6674void Recordable::SetTraceId (const opentelemetry::trace::TraceId &trace_id) noexcept
0 commit comments