| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- // Copyright The OpenTelemetry Authors
- // SPDX-License-Identifier: Apache-2.0
- #include <gtest/gtest.h>
- #include <stdlib.h>
- #include "opentelemetry/common/key_value_iterable.h"
- #include "opentelemetry/logs/event_logger.h" // IWYU pragma: keep
- #include "opentelemetry/logs/event_logger_provider.h"
- #include "opentelemetry/logs/logger.h" // IWYU pragma: keep
- #include "opentelemetry/logs/logger_provider.h"
- #include "opentelemetry/logs/provider.h"
- #include "opentelemetry/nostd/shared_ptr.h"
- #include "opentelemetry/nostd/string_view.h"
- #include "opentelemetry/sdk/logs/provider.h"
- #if defined(_MSC_VER)
- # include "opentelemetry/sdk/common/env_variables.h"
- using opentelemetry::sdk::common::setenv;
- using opentelemetry::sdk::common::unsetenv;
- #endif
- #if OPENTELEMETRY_ABI_VERSION_NO < 2
- using opentelemetry::logs::EventLogger;
- using opentelemetry::logs::EventLoggerProvider;
- #endif
- using opentelemetry::logs::Logger;
- using opentelemetry::logs::LoggerProvider;
- using opentelemetry::logs::Provider;
- using opentelemetry::nostd::shared_ptr;
- namespace nostd = opentelemetry::nostd;
- namespace logs_api = opentelemetry::logs;
- namespace logs_sdk = opentelemetry::sdk::logs;
- class TestProvider : public LoggerProvider
- {
- nostd::shared_ptr<Logger> GetLogger(
- nostd::string_view /* logger_name */,
- nostd::string_view /* library_name */,
- nostd::string_view /* library_version */,
- nostd::string_view /* schema_url */,
- const opentelemetry::common::KeyValueIterable & /* attributes */) override
- {
- return shared_ptr<Logger>(nullptr);
- }
- };
- TEST(Provider, SetLoggerProviderDefault)
- {
- #ifndef NO_GETENV
- unsetenv("OTEL_SDK_DISABLED");
- #endif
- auto tf = shared_ptr<LoggerProvider>(new TestProvider());
- logs_sdk::Provider::SetLoggerProvider(tf);
- ASSERT_EQ(tf, logs_api::Provider::GetLoggerProvider());
- }
- #ifndef NO_GETENV
- TEST(Provider, SetLoggerProviderEnabled)
- {
- setenv("OTEL_SDK_DISABLED", "false", 1);
- auto tf = shared_ptr<LoggerProvider>(new TestProvider());
- logs_sdk::Provider::SetLoggerProvider(tf);
- ASSERT_EQ(tf, logs_api::Provider::GetLoggerProvider());
- unsetenv("OTEL_SDK_DISABLED");
- }
- TEST(Provider, SetLoggerProviderDisabled)
- {
- setenv("OTEL_SDK_DISABLED", "true", 1);
- auto tf = shared_ptr<LoggerProvider>(new TestProvider());
- logs_sdk::Provider::SetLoggerProvider(tf);
- ASSERT_NE(tf, logs_api::Provider::GetLoggerProvider());
- unsetenv("OTEL_SDK_DISABLED");
- }
- #endif
- TEST(Provider, MultipleLoggerProviders)
- {
- auto tf = shared_ptr<LoggerProvider>(new TestProvider());
- logs_sdk::Provider::SetLoggerProvider(tf);
- auto tf2 = shared_ptr<LoggerProvider>(new TestProvider());
- logs_sdk::Provider::SetLoggerProvider(tf2);
- ASSERT_NE(logs_api::Provider::GetLoggerProvider(), tf);
- }
|