Skip to content

Commit b308f07

Browse files
authored
Merge branch 'main' into add-unit-criteria
2 parents 0f07b34 + 2974eb8 commit b308f07

File tree

5 files changed

+94
-5
lines changed

5 files changed

+94
-5
lines changed

exporters/ostream/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ cc_library(
77
name = "ostream_log_record_exporter",
88
srcs = [
99
"src/log_record_exporter.cc",
10+
"src/log_record_exporter_factory.cc",
1011
],
1112
hdrs = [
1213
"include/opentelemetry/exporters/ostream/common_utils.h",
1314
"include/opentelemetry/exporters/ostream/log_record_exporter.h",
15+
"include/opentelemetry/exporters/ostream/log_record_exporter_factory.h",
1416
],
1517
strip_include_prefix = "include",
1618
tags = ["ostream"],

exporters/ostream/CMakeLists.txt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if(OPENTELEMETRY_INSTALL)
2727
DIRECTORY include/opentelemetry/exporters/ostream
2828
DESTINATION include/opentelemetry/exporters
2929
PATTERN "*.h"
30-
PATTERN "log_Exporter.h" EXCLUDE)
30+
PATTERN "log_record_exporter.h" EXCLUDE)
3131
endif()
3232

3333
if(BUILD_TESTING)
@@ -77,7 +77,8 @@ if(BUILD_TESTING)
7777
endif()
7878

7979
if(WITH_LOGS_PREVIEW)
80-
add_library(opentelemetry_exporter_ostream_logs src/log_record_exporter.cc)
80+
add_library(opentelemetry_exporter_ostream_logs
81+
src/log_record_exporter.cc src/log_record_exporter_factory.cc)
8182
set_target_properties(opentelemetry_exporter_ostream_logs
8283
PROPERTIES EXPORT_NAME ostream_log_record_exporter)
8384
set_target_version(opentelemetry_exporter_ostream_logs)
@@ -96,9 +97,10 @@ if(WITH_LOGS_PREVIEW)
9697
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
9798
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
9899
install(
99-
DIRECTORY include/opentelemetry/exporters/ostream
100-
DESTINATION include/opentelemetry/exporters
101-
PATTERN "log_record_exporter.h")
100+
FILES
101+
"include/opentelemetry/exporters/ostream/log_record_exporter.h"
102+
"include/opentelemetry/exporters/ostream/log_record_exporter_factory.h"
103+
DESTINATION include/opentelemetry/exporters/ostream)
102104
endif()
103105

104106
if(BUILD_TESTING)
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#ifdef ENABLE_LOGS_PREVIEW
7+
# include <iostream>
8+
# include <memory>
9+
10+
# include "opentelemetry/sdk/version/version.h"
11+
12+
OPENTELEMETRY_BEGIN_NAMESPACE
13+
namespace sdk
14+
{
15+
namespace logs
16+
{
17+
class LogRecordExporter;
18+
} // namespace logs
19+
} // namespace sdk
20+
21+
namespace exporter
22+
{
23+
namespace logs
24+
{
25+
26+
/**
27+
* Factory class for OStreamLogRecordExporter.
28+
*/
29+
class OPENTELEMETRY_EXPORT OStreamLogRecordExporterFactory
30+
{
31+
public:
32+
/**
33+
* Creates an OStreamLogRecordExporter writing to the default location.
34+
*/
35+
static std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> Create();
36+
37+
/**
38+
* Creates an OStreamLogRecordExporter writing to the given location.
39+
*/
40+
static std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> Create(std::ostream &sout);
41+
};
42+
43+
} // namespace logs
44+
} // namespace exporter
45+
OPENTELEMETRY_END_NAMESPACE
46+
#endif
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#ifdef ENABLE_LOGS_PREVIEW
5+
# include "opentelemetry/exporters/ostream/log_record_exporter_factory.h"
6+
# include "opentelemetry/exporters/ostream/log_record_exporter.h"
7+
8+
namespace logs_sdk = opentelemetry::sdk::logs;
9+
10+
OPENTELEMETRY_BEGIN_NAMESPACE
11+
namespace exporter
12+
{
13+
namespace logs
14+
{
15+
16+
std::unique_ptr<logs_sdk::LogRecordExporter> OStreamLogRecordExporterFactory::Create()
17+
{
18+
return Create(std::cout);
19+
}
20+
21+
std::unique_ptr<logs_sdk::LogRecordExporter> OStreamLogRecordExporterFactory::Create(
22+
std::ostream &sout)
23+
{
24+
std::unique_ptr<logs_sdk::LogRecordExporter> exporter(new OStreamLogRecordExporter(sout));
25+
return exporter;
26+
}
27+
28+
} // namespace logs
29+
} // namespace exporter
30+
OPENTELEMETRY_END_NAMESPACE
31+
#endif

exporters/ostream/test/ostream_log_test.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#ifdef ENABLE_LOGS_PREVIEW
55

66
# include "opentelemetry/exporters/ostream/log_record_exporter.h"
7+
# include "opentelemetry/exporters/ostream/log_record_exporter_factory.h"
78
# include "opentelemetry/logs/provider.h"
89
# include "opentelemetry/nostd/span.h"
910
# include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h"
@@ -507,6 +508,13 @@ TEST(OStreamLogRecordExporter, IntegrationTestWithEventId)
507508
}
508509
}
509510

511+
// Test using the factory to create the ostream exporter
512+
TEST(OStreamLogRecordExporter, Factory)
513+
{
514+
auto exporter = OStreamLogRecordExporterFactory::Create();
515+
ASSERT_NE(exporter, nullptr);
516+
}
517+
510518
} // namespace logs
511519
} // namespace exporter
512520
OPENTELEMETRY_END_NAMESPACE

0 commit comments

Comments
 (0)