From 0d98288a39e366e1f1aee63f6aacd3d8b56a0831 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Mon, 9 Feb 2026 21:25:59 +0100 Subject: [PATCH 1/9] [WIP] Revisit EventLogger deprecation. --- DEPRECATED.md | 24 ++++++++++- api/include/opentelemetry/logs/event_logger.h | 22 +--------- .../logs/event_logger_provider.h | 22 +--------- api/include/opentelemetry/logs/noop.h | 19 -------- api/include/opentelemetry/logs/provider.h | 43 ++----------------- .../common/logs_foo_library/CMakeLists.txt | 21 --------- .../opentelemetry/sdk/logs/event_logger.h | 3 +- .../sdk/logs/event_logger_provider.h | 2 +- .../sdk/logs/event_logger_provider_factory.h | 5 ++- 9 files changed, 37 insertions(+), 124 deletions(-) diff --git a/DEPRECATED.md b/DEPRECATED.md index 399d441b3e..a8e9ed9754 100644 --- a/DEPRECATED.md +++ b/DEPRECATED.md @@ -46,7 +46,29 @@ N/A ## [opentelemetry-cpp API] -N/A +### New deprecation (EventLogger) + +TODO + +#### Announcement (EventLogger) + +TODO + +#### Motivation (EventLogger) + +TODO + +#### Scope (EventLogger) + +TODO + +#### Mitigation (EventLogger) + +TODO + +#### Planned removal (EventLogger) + +TODO ## [opentelemetry-cpp SDK] diff --git a/api/include/opentelemetry/logs/event_logger.h b/api/include/opentelemetry/logs/event_logger.h index dbeffd2042..3c780938cd 100644 --- a/api/include/opentelemetry/logs/event_logger.h +++ b/api/include/opentelemetry/logs/event_logger.h @@ -15,21 +15,11 @@ OPENTELEMETRY_BEGIN_NAMESPACE namespace logs { #if OPENTELEMETRY_ABI_VERSION_NO < 2 -# if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable : 4996) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wdeprecated-declarations" -# endif - /** * Handles event log record creation. + * @deprecated **/ -class OPENTELEMETRY_DEPRECATED EventLogger +class EventLogger { public: virtual ~EventLogger() = default; @@ -88,14 +78,6 @@ class OPENTELEMETRY_DEPRECATED EventLogger void IgnoreTraitResult(ValueType &&...) {} }; - -# if defined(_MSC_VER) -# pragma warning(pop) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic pop -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic pop -# endif #endif } // namespace logs OPENTELEMETRY_END_NAMESPACE diff --git a/api/include/opentelemetry/logs/event_logger_provider.h b/api/include/opentelemetry/logs/event_logger_provider.h index cb3b05dc72..51053150e5 100644 --- a/api/include/opentelemetry/logs/event_logger_provider.h +++ b/api/include/opentelemetry/logs/event_logger_provider.h @@ -15,21 +15,11 @@ class EventLogger; class Logger; #if OPENTELEMETRY_ABI_VERSION_NO < 2 -# if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable : 4996) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wdeprecated-declarations" -# endif - /** * Creates new EventLogger instances. + * @deprecated */ -class OPENTELEMETRY_DEPRECATED EventLoggerProvider +class EventLoggerProvider { public: virtual ~EventLoggerProvider() = default; @@ -43,14 +33,6 @@ class OPENTELEMETRY_DEPRECATED EventLoggerProvider nostd::shared_ptr delegate_logger, nostd::string_view event_domain) noexcept = 0; }; - -# if defined(_MSC_VER) -# pragma warning(pop) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic pop -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic pop -# endif #endif } // namespace logs OPENTELEMETRY_END_NAMESPACE diff --git a/api/include/opentelemetry/logs/noop.h b/api/include/opentelemetry/logs/noop.h index 73bf1e57f9..24ec94bee5 100644 --- a/api/include/opentelemetry/logs/noop.h +++ b/api/include/opentelemetry/logs/noop.h @@ -91,17 +91,6 @@ class NoopLoggerProvider final : public LoggerProvider }; #if OPENTELEMETRY_ABI_VERSION_NO < 2 -# if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable : 4996) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wdeprecated-declarations" -# endif - class NoopEventLogger final : public EventLogger { public: @@ -138,14 +127,6 @@ class NoopEventLoggerProvider final : public EventLoggerProvider private: nostd::shared_ptr event_logger_; }; - -# if defined(_MSC_VER) -# pragma warning(pop) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic pop -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic pop -# endif #endif } // namespace logs diff --git a/api/include/opentelemetry/logs/provider.h b/api/include/opentelemetry/logs/provider.h index 83d2e765de..56ce5327b7 100644 --- a/api/include/opentelemetry/logs/provider.h +++ b/api/include/opentelemetry/logs/provider.h @@ -48,23 +48,14 @@ class OPENTELEMETRY_EXPORT Provider } #if OPENTELEMETRY_ABI_VERSION_NO < 2 -# if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable : 4996) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wdeprecated-declarations" -# endif /** * Returns the singleton EventLoggerProvider. * * By default, a no-op EventLoggerProvider is returned. This will never return a * nullptr EventLoggerProvider. + * @deprecated */ - OPENTELEMETRY_DEPRECATED static nostd::shared_ptr + static nostd::shared_ptr GetEventLoggerProvider() noexcept { std::lock_guard guard(GetLock()); @@ -73,20 +64,14 @@ class OPENTELEMETRY_EXPORT Provider /** * Changes the singleton EventLoggerProvider. + * @deprecated */ - OPENTELEMETRY_DEPRECATED static void SetEventLoggerProvider( + static void SetEventLoggerProvider( const nostd::shared_ptr &tp) noexcept { std::lock_guard guard(GetLock()); GetEventProvider() = tp; } -# if defined(_MSC_VER) -# pragma warning(pop) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic pop -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic pop -# endif #endif private: @@ -97,32 +82,12 @@ class OPENTELEMETRY_EXPORT Provider } #if OPENTELEMETRY_ABI_VERSION_NO < 2 -# if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable : 4996) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wdeprecated-declarations" -# endif - - OPENTELEMETRY_DEPRECATED OPENTELEMETRY_API_SINGLETON static nostd::shared_ptr & GetEventProvider() noexcept { static nostd::shared_ptr provider(new NoopEventLoggerProvider); return provider; } - -# if defined(_MSC_VER) -# pragma warning(pop) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic pop -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic pop -# endif #endif OPENTELEMETRY_API_SINGLETON static common::SpinLockMutex &GetLock() noexcept diff --git a/examples/common/logs_foo_library/CMakeLists.txt b/examples/common/logs_foo_library/CMakeLists.txt index 14b0209bd5..b1173098fd 100644 --- a/examples/common/logs_foo_library/CMakeLists.txt +++ b/examples/common/logs_foo_library/CMakeLists.txt @@ -12,24 +12,3 @@ target_include_directories(common_logs_foo_library PUBLIC $) target_link_libraries(common_logs_foo_library PUBLIC opentelemetry-cpp::api) - -# Internal deprecated API calling should not failed the build in maintainer mode -if(OTELCPP_MAINTAINER_MODE) - if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang") - get_target_property(COMMON_LOGS_FOO_COMPILE_OPTS common_logs_foo_library - COMPILE_OPTIONS) - list(REMOVE_ITEM COMMON_LOGS_FOO_COMPILE_OPTS - -Wno-error=deprecated-declarations) - set_target_properties( - common_logs_foo_library PROPERTIES COMPILE_OPTIONS - "${COMMON_LOGS_FOO_COMPILE_OPTS}") - elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - get_target_property(COMMON_LOGS_FOO_COMPILE_OPTS common_logs_foo_library - COMPILE_OPTIONS) - list(REMOVE_ITEM COMMON_LOGS_FOO_COMPILE_OPTS /wd4996) - list(APPEND COMMON_LOGS_FOO_COMPILE_OPTS /w34996) - set_target_properties( - common_logs_foo_library PROPERTIES COMPILE_OPTIONS - "${COMMON_LOGS_FOO_COMPILE_OPTS}") - endif() -endif() diff --git a/sdk/include/opentelemetry/sdk/logs/event_logger.h b/sdk/include/opentelemetry/sdk/logs/event_logger.h index dcb93cb2d4..9522c4c910 100644 --- a/sdk/include/opentelemetry/sdk/logs/event_logger.h +++ b/sdk/include/opentelemetry/sdk/logs/event_logger.h @@ -19,13 +19,14 @@ namespace sdk namespace logs { #if OPENTELEMETRY_ABI_VERSION_NO < 2 -class OPENTELEMETRY_DEPRECATED EventLogger final : public opentelemetry::logs::EventLogger +class EventLogger final : public opentelemetry::logs::EventLogger { public: /** * Initialize a new Eventlogger. * @param delegate_logger The delegate logger instance * @param event_domain Event domain + * @deprecated */ explicit EventLogger(nostd::shared_ptr delegate_logger, nostd::string_view event_domain) noexcept; diff --git a/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h b/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h index 6c7fafab54..2ec7c2c844 100644 --- a/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h +++ b/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h @@ -23,7 +23,7 @@ namespace sdk namespace logs { #if OPENTELEMETRY_ABI_VERSION_NO < 2 -class OPENTELEMETRY_EXPORT OPENTELEMETRY_DEPRECATED EventLoggerProvider final +class OPENTELEMETRY_EXPORT EventLoggerProvider final : public opentelemetry::logs::EventLoggerProvider { public: diff --git a/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h b/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h index febc772f12..dddd3af7fb 100644 --- a/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h +++ b/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h @@ -20,15 +20,16 @@ namespace logs #if OPENTELEMETRY_ABI_VERSION_NO < 2 /** * Factory class for EventLoggerProvider. + * @deprecated */ -class OPENTELEMETRY_DEPRECATED EventLoggerProviderFactory +class EventLoggerProviderFactory { public: /** * Create a EventLoggerProvider. */ - OPENTELEMETRY_DEPRECATED static std::unique_ptr + static std::unique_ptr Create(); }; #endif From bbfa022402af5d6d3a5376d4bbf03264879f4b81 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Mon, 9 Feb 2026 23:30:18 +0100 Subject: [PATCH 2/9] DEPRECATED.md --- DEPRECATED.md | 74 +++++++++++++++++-- api/include/opentelemetry/logs/provider.h | 6 +- .../sdk/logs/event_logger_provider_factory.h | 3 +- 3 files changed, 69 insertions(+), 14 deletions(-) diff --git a/DEPRECATED.md b/DEPRECATED.md index a8e9ed9754..1eee40fda5 100644 --- a/DEPRECATED.md +++ b/DEPRECATED.md @@ -46,29 +46,87 @@ N/A ## [opentelemetry-cpp API] -### New deprecation (EventLogger) - -TODO +### Deprecation of EventLogger #### Announcement (EventLogger) -TODO +The `EventLogger` API was deprecated by: + +* [API] Deprecate event logger + [#3285](https://github.com/open-telemetry/opentelemetry-cpp/pull/3285) + +on Feb 25, 2025, as published in release 1.20. #### Motivation (EventLogger) -TODO +The specification for `EventLogger` was deprecated by: + +* Deprecate Event API and SDK in favor of Emit Event in the Log API + [#4319](https://github.com/open-telemetry/opentelemetry-specification/pull/4319) + +The opentelemetry-cpp API and SDK deprecates the EventLogger to be aligned +with the opentelemetry specification. #### Scope (EventLogger) -TODO +The following classes or methods are deprecated in ABI version 1: + +* API + * class opentelemetry::logs::EventLogger + * class opentelemetry::logs::EventLoggerProvider + * class opentelemetry::logs::NoopEventLogger + * class opentelemetry::logs::NoopEventLoggerProvider + * method opentelemetry::logs::Provider::GetEventLoggerProvider() + * method opentelemetry::logs::Provider::SetEventLoggerProvider() +* SDK + * class opentelemetry::sdk::logs::EventLogger + * class opentelemetry::sdk::logs::EventLoggerProvider + * class opentelemetry::sdk::logs::EventLoggerProviderFactory + +The same are removed from ABI version 2. #### Mitigation (EventLogger) -TODO +In respective order, the following should be used in place of `EventLogger`: + +* API + * class opentelemetry::logs::Logger + * class opentelemetry::logs::LoggerProvider + * class opentelemetry::logs::NoopLogger + * class opentelemetry::logs::NoopLoggerProvider + * method opentelemetry::logs::Provider::GetLoggerProvider() + * method opentelemetry::logs::Provider::SetLoggerProvider() +* SDK + * class opentelemetry::sdk::logs::Logger + * class opentelemetry::sdk::logs::LoggerProvider + * class opentelemetry::sdk::logs::LoggerProviderFactory + +Instrumented applications, that currently use +`opentelemetry::logs::Provider::GetEventLoggerProvider()`, +are strongly encouraged to migrate and use +`opentelemetry::logs::Provider::GetLoggerProvider()` instead. + +Main applications, when installing and configuring an SDK, that currently use +`opentelemetry::logs::Provider::SetEventLoggerProvider()`, +are strongly encouraged to migrate and use +`opentelemetry::logs::Provider::SetLoggerProvider()` instead. + +This migration can be implemented now, +as `Logger` is available already in ABI version 1. + +This migration is mandatory and a pre requisite for adoption of ABI version 2 later. #### Planned removal (EventLogger) -TODO +All the deprecated code is already removed from ABI version 2, since Feb +2025. + +While EventLogger will not be removed from ABI version 1, +the ABI version 1 itself will be deprecated and decommissioned in the long +term, after ABI version 2 is declared stable. + +By the time only ABI version 2 is available and supported, +any code still using the deprecated `EventLogger` will break. ## [opentelemetry-cpp SDK] diff --git a/api/include/opentelemetry/logs/provider.h b/api/include/opentelemetry/logs/provider.h index 56ce5327b7..b3ae690d58 100644 --- a/api/include/opentelemetry/logs/provider.h +++ b/api/include/opentelemetry/logs/provider.h @@ -55,8 +55,7 @@ class OPENTELEMETRY_EXPORT Provider * nullptr EventLoggerProvider. * @deprecated */ - static nostd::shared_ptr - GetEventLoggerProvider() noexcept + static nostd::shared_ptr GetEventLoggerProvider() noexcept { std::lock_guard guard(GetLock()); return nostd::shared_ptr(GetEventProvider()); @@ -66,8 +65,7 @@ class OPENTELEMETRY_EXPORT Provider * Changes the singleton EventLoggerProvider. * @deprecated */ - static void SetEventLoggerProvider( - const nostd::shared_ptr &tp) noexcept + static void SetEventLoggerProvider(const nostd::shared_ptr &tp) noexcept { std::lock_guard guard(GetLock()); GetEventProvider() = tp; diff --git a/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h b/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h index dddd3af7fb..c4e27a4993 100644 --- a/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h +++ b/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h @@ -29,8 +29,7 @@ class EventLoggerProviderFactory * Create a EventLoggerProvider. */ - static std::unique_ptr - Create(); + static std::unique_ptr Create(); }; #endif From fbc87616fdb82482a5dc5917c66b0273a45062e5 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Tue, 10 Feb 2026 15:36:02 +0100 Subject: [PATCH 3/9] CHANGELOG --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b31fe5f851..ef7e6ff7bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,18 @@ Increment the: ## [Unreleased] +* [BUILD] Revisit EventLogger deprecation + [#3855](https://github.com/open-telemetry/opentelemetry-cpp/pull/3855) + +Important changes: + +* [BUILD] Revisit EventLogger deprecation + [#3855](https://github.com/open-telemetry/opentelemetry-cpp/pull/3855) + + * File `DEPRECATED.md` contains information about current deprecation + plans. + * Please adjust your application accordingly, to avoid disruption. + ## [1.25 2026-02-07] * [RELEASE] Bump main branch to 1.25.0-dev (#3759) From 7c0e969f834bb3fd8dd10c2f43a587d574e4253b Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 12 Feb 2026 09:51:02 +0100 Subject: [PATCH 4/9] Fixed doxygen comments --- api/include/opentelemetry/logs/noop.h | 5 +++++ sdk/include/opentelemetry/sdk/logs/event_logger.h | 5 ++++- sdk/include/opentelemetry/sdk/logs/event_logger_provider.h | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/api/include/opentelemetry/logs/noop.h b/api/include/opentelemetry/logs/noop.h index 24ec94bee5..fe0e2b44a9 100644 --- a/api/include/opentelemetry/logs/noop.h +++ b/api/include/opentelemetry/logs/noop.h @@ -91,6 +91,10 @@ class NoopLoggerProvider final : public LoggerProvider }; #if OPENTELEMETRY_ABI_VERSION_NO < 2 +/** + * No-op implementation of a EventLogger. + * @deprecated + */ class NoopEventLogger final : public EventLogger { public: @@ -109,6 +113,7 @@ class NoopEventLogger final : public EventLogger /** * No-op implementation of a EventLoggerProvider. + * @deprecated */ class NoopEventLoggerProvider final : public EventLoggerProvider { diff --git a/sdk/include/opentelemetry/sdk/logs/event_logger.h b/sdk/include/opentelemetry/sdk/logs/event_logger.h index 9522c4c910..fa66addc41 100644 --- a/sdk/include/opentelemetry/sdk/logs/event_logger.h +++ b/sdk/include/opentelemetry/sdk/logs/event_logger.h @@ -19,6 +19,10 @@ namespace sdk namespace logs { #if OPENTELEMETRY_ABI_VERSION_NO < 2 +/** + * Sdk implementation of EventLogger. + * @deprecated + */ class EventLogger final : public opentelemetry::logs::EventLogger { public: @@ -26,7 +30,6 @@ class EventLogger final : public opentelemetry::logs::EventLogger * Initialize a new Eventlogger. * @param delegate_logger The delegate logger instance * @param event_domain Event domain - * @deprecated */ explicit EventLogger(nostd::shared_ptr delegate_logger, nostd::string_view event_domain) noexcept; diff --git a/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h b/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h index 2ec7c2c844..8bdf533986 100644 --- a/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h +++ b/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h @@ -23,6 +23,10 @@ namespace sdk namespace logs { #if OPENTELEMETRY_ABI_VERSION_NO < 2 +/** + * Sdk implementation of EventLoggerProvider. + * @deprecated + */ class OPENTELEMETRY_EXPORT EventLoggerProvider final : public opentelemetry::logs::EventLoggerProvider { From 284051e910c523daaf7401c54f0977e7dce90eb4 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 12 Feb 2026 15:15:54 +0100 Subject: [PATCH 5/9] Rework on deprecation warnings. --- api/include/opentelemetry/logs/provider.h | 6 +++-- api/test/logs/logger_test.cc | 26 ++++++++++++++++++++++ api/test/logs/provider_test.cc | 27 +++++++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) diff --git a/api/include/opentelemetry/logs/provider.h b/api/include/opentelemetry/logs/provider.h index b3ae690d58..c310e0affc 100644 --- a/api/include/opentelemetry/logs/provider.h +++ b/api/include/opentelemetry/logs/provider.h @@ -55,7 +55,8 @@ class OPENTELEMETRY_EXPORT Provider * nullptr EventLoggerProvider. * @deprecated */ - static nostd::shared_ptr GetEventLoggerProvider() noexcept + OPENTELEMETRY_DEPRECATED static nostd::shared_ptr + GetEventLoggerProvider() noexcept { std::lock_guard guard(GetLock()); return nostd::shared_ptr(GetEventProvider()); @@ -65,7 +66,8 @@ class OPENTELEMETRY_EXPORT Provider * Changes the singleton EventLoggerProvider. * @deprecated */ - static void SetEventLoggerProvider(const nostd::shared_ptr &tp) noexcept + OPENTELEMETRY_DEPRECATED static void SetEventLoggerProvider( + const nostd::shared_ptr &tp) noexcept { std::lock_guard guard(GetLock()); GetEventProvider() = tp; diff --git a/api/test/logs/logger_test.cc b/api/test/logs/logger_test.cc index ee4514dda9..e4dfac1fd1 100644 --- a/api/test/logs/logger_test.cc +++ b/api/test/logs/logger_test.cc @@ -161,6 +161,23 @@ TEST(Logger, LogMethodOverloads) } #if OPENTELEMETRY_ABI_VERSION_NO < 2 + +/* + * opentelemetry::logs::Provider::GetLoggerProvider() is deprecated. + * Suppress warnings in tests, to have a clean build and coverage. + */ + +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# endif + TEST(Logger, EventLogMethodOverloads) { auto lp = Provider::GetLoggerProvider(); @@ -192,6 +209,15 @@ TEST(Logger, EventLogMethodOverloads) event_logger->EmitEvent("event name", Severity::kDebug, opentelemetry::common::MakeAttributes(vec)); } + +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif + #endif // Define a basic Logger class diff --git a/api/test/logs/provider_test.cc b/api/test/logs/provider_test.cc index 33f77279ad..a8ecec8a4e 100644 --- a/api/test/logs/provider_test.cc +++ b/api/test/logs/provider_test.cc @@ -74,6 +74,24 @@ TEST(Provider, GetLogger) } #if OPENTELEMETRY_ABI_VERSION_NO < 2 + +/* + * opentelemetry::logs::Provider::GetLoggerProvider() is deprecated. + * opentelemetry::logs::Provider::SetLoggerProvider() is deprecated. + * Suppress warnings in tests, to have a clean build and coverage. + */ + +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# endif + class TestEventLoggerProvider : public EventLoggerProvider { public: @@ -115,4 +133,13 @@ TEST(Provider, CreateEventLogger) EXPECT_EQ(nullptr, logger); } + +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif + #endif From 660074dc984b41ebfa5bae02cc865f1611b17b02 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 12 Feb 2026 18:41:29 +0100 Subject: [PATCH 6/9] Cleanup --- .../sdk/logs/event_logger_provider_factory.h | 2 +- sdk/test/logs/logger_provider_sdk_test.cc | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h b/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h index c4e27a4993..4320bb5de3 100644 --- a/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h +++ b/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h @@ -22,7 +22,7 @@ namespace logs * Factory class for EventLoggerProvider. * @deprecated */ -class EventLoggerProviderFactory +class OPENTELEMETRY_DEPRECATED EventLoggerProviderFactory { public: /** diff --git a/sdk/test/logs/logger_provider_sdk_test.cc b/sdk/test/logs/logger_provider_sdk_test.cc index 8b649e38f7..571b8fe3b6 100644 --- a/sdk/test/logs/logger_provider_sdk_test.cc +++ b/sdk/test/logs/logger_provider_sdk_test.cc @@ -119,6 +119,23 @@ TEST(LoggerProviderSDK, LoggerProviderLoggerArguments) } #if OPENTELEMETRY_ABI_VERSION_NO < 2 + +/* + * opentelemetry::sdk::logs::EventLoggerProviderFactory is deprecated. + * Suppress warnings in tests, to have a clean build and coverage. + */ + +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# endif + TEST(LoggerProviderSDK, EventLoggerProviderFactory) { auto elp = opentelemetry::sdk::logs::EventLoggerProviderFactory::Create(); @@ -129,6 +146,15 @@ TEST(LoggerProviderSDK, EventLoggerProviderFactory) auto event_logger = elp->CreateEventLogger(logger1, "otel-cpp.test"); } + +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif + #endif TEST(LoggerProviderSDK, LoggerEqualityCheck) From 95c6c201306ea67faa8f64026f97e14ca58307ab Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 12 Feb 2026 20:48:35 +0100 Subject: [PATCH 7/9] Fixed comments. --- api/test/logs/provider_test.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/test/logs/provider_test.cc b/api/test/logs/provider_test.cc index a8ecec8a4e..0ed785acf7 100644 --- a/api/test/logs/provider_test.cc +++ b/api/test/logs/provider_test.cc @@ -76,8 +76,8 @@ TEST(Provider, GetLogger) #if OPENTELEMETRY_ABI_VERSION_NO < 2 /* - * opentelemetry::logs::Provider::GetLoggerProvider() is deprecated. - * opentelemetry::logs::Provider::SetLoggerProvider() is deprecated. + * opentelemetry::logs::Provider::GetEventLoggerProvider() is deprecated. + * opentelemetry::logs::Provider::SetEventLoggerProvider() is deprecated. * Suppress warnings in tests, to have a clean build and coverage. */ From 14401105144d2e4f9347e0cdfeeed09545437b9e Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Wed, 25 Feb 2026 14:54:34 +0100 Subject: [PATCH 8/9] Do not ignore deprecation warnings. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 48046d1b38..25476fe10c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -439,7 +439,7 @@ if(OTELCPP_MAINTAINER_MODE) add_compile_options(/wd4127) add_compile_options(/wd4512) add_compile_options(/wd4267) - add_compile_options(/wd4996) + # add_compile_options(/wd4996) # deprecation warning # Enforced warnings add_compile_options(/we4265) # 'class': class has virtual functions, but From 15a571b8ab37a4ba6b0897c38a662deea2708d0d Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Wed, 25 Feb 2026 18:09:53 +0100 Subject: [PATCH 9/9] Do not silence deprecation warnings in maintainer build. --- CMakeLists.txt | 6 ++++-- examples/common/metrics_foo_library/foo_library.cc | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 25476fe10c..1768dace7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -432,14 +432,16 @@ if(OTELCPP_MAINTAINER_MODE) add_compile_options(/WX) add_compile_options(/W4) - # Relaxed warnings + # Relaxed warnings (ignored) add_compile_options(/wd4100) add_compile_options(/wd4125) add_compile_options(/wd4566) add_compile_options(/wd4127) add_compile_options(/wd4512) add_compile_options(/wd4267) - # add_compile_options(/wd4996) # deprecation warning + + # Relaxed warnings (still reported as warnings, not errors) + add_compile_options(/w34996) # 'xxx' was declared deprecated # Enforced warnings add_compile_options(/we4265) # 'class': class has virtual functions, but diff --git a/examples/common/metrics_foo_library/foo_library.cc b/examples/common/metrics_foo_library/foo_library.cc index 63ce796e28..8e0e1b42dc 100644 --- a/examples/common/metrics_foo_library/foo_library.cc +++ b/examples/common/metrics_foo_library/foo_library.cc @@ -23,8 +23,8 @@ #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/nostd/variant.h" #include "opentelemetry/semconv/http_metrics.h" -#include "opentelemetry/semconv/incubating/container_metrics.h" -#include "opentelemetry/semconv/incubating/system_metrics.h" +#include "opentelemetry/semconv/container_metrics.h" +#include "opentelemetry/semconv/system_metrics.h" namespace metrics_api = opentelemetry::metrics;