1212#include " opentelemetry/trace/span_context_kv_iterable_view.h"
1313#include " opentelemetry/baggage/baggage.h"
1414#include " opentelemetry/nostd/string_view.h"
15+ #include " opentelemetry/logs/event_id.h"
1516#include " logger_common.h"
1617#include " meter_common.h"
1718#include " tracer_common.h"
@@ -43,8 +44,16 @@ namespace metrics_api = opentelemetry::metrics;
4344namespace nostd = opentelemetry::nostd;
4445namespace semconv = opentelemetry::semconv;
4546
47+ using opentelemetry::logs::EventId;
48+
4649namespace
4750{
51+ EventId eventName (nostd::string_view name) {
52+ // The OTLP exporter ignores the numeric EventId and exports only the event name.
53+ // Use 0 to satisfy the C++ API; revisit when the C++ SDK provides guidance.
54+ return EventId{0 , name};
55+ }
56+
4857 std::unordered_map<std::string, double > currency_conversion
4958 {
5059 {" EUR" , 1.0 },
@@ -134,7 +143,7 @@ class CurrencyService final : public oteldemo::CurrencyService::Service
134143 span->AddEvent (" Currencies fetched, response sent back" );
135144 span->SetStatus (StatusCode::kOk );
136145
137- logger->Info (std::string (__func__) + " successful" );
146+ logger->Info (eventName ( " currency.get_supported_currencies " ), " GetSupportedCurrencies successful" );
138147
139148 // Make sure to end your spans!
140149 span->End ();
@@ -210,7 +219,11 @@ class CurrencyService final : public oteldemo::CurrencyService::Service
210219 span->AddEvent (" Conversion successful, response sent back" );
211220 span->SetStatus (StatusCode::kOk );
212221
213- logger->Info (std::string (__func__) + " conversion successful" );
222+ logger->Info (eventName (" currency.conversion" ),
223+ " conversion successful" ,
224+ opentelemetry::common::MakeAttributes (
225+ {{" currency.from" , from_code.c_str ()},
226+ {" currency.to" , to_code.c_str ()}}));
214227
215228 // End the span
216229 span->End ();
@@ -220,7 +233,7 @@ class CurrencyService final : public oteldemo::CurrencyService::Service
220233 span->AddEvent (" Conversion failed" );
221234 span->SetStatus (StatusCode::kError );
222235
223- logger->Error (std::string (__func__) + " conversion failure" );
236+ logger->Error (eventName ( " currency.conversion_failed " ), " conversion failure" );
224237
225238 span->End ();
226239 return Status::CANCELLED ;
@@ -244,7 +257,9 @@ void RunServer(uint16_t port)
244257
245258 if (ipv6_enabled == " true" ) {
246259 ip = " [::]" ;
247- logger->Info (" Overwriting Localhost IP: " + ip);
260+ logger->Info (eventName (" currency.server.ip_overwrite" ),
261+ " Overwriting Localhost IP" ,
262+ opentelemetry::common::MakeAttributes ({{" server.address" , ip.c_str ()}}));
248263 }
249264
250265 std::string address (ip + " :" + std::to_string (port));
@@ -258,7 +273,9 @@ void RunServer(uint16_t port)
258273 builder.AddListeningPort (address, grpc::InsecureServerCredentials ());
259274
260275 std::unique_ptr<Server> server (builder.BuildAndStart ());
261- logger->Info (" Currency Server listening on port: " + address);
276+ logger->Info (eventName (" currency.server.started" ),
277+ " Currency Server started" ,
278+ opentelemetry::common::MakeAttributes ({{" server.address" , address.c_str ()}}));
262279 server->Wait ();
263280 server->Shutdown ();
264281}
0 commit comments