From eddefb8a9cad8e0c30a6087e70b18adb19d98f8d Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Tue, 21 Jan 2020 15:58:23 -0800 Subject: [PATCH 1/8] wip: android logging Signed-off-by: Jose Nino --- bazel/BUILD | 5 ++ bazel/envoy_build_system.bzl | 6 +++ source/common/common/BUILD | 27 ++++++++++- source/common/common/android/logger_impl.cc | 15 ++++++ source/common/common/android/logger_impl.h | 16 +++++++ source/common/common/base_logger.cc | 17 +++++++ source/common/common/base_logger.h | 51 +++++++++++++++++++++ source/common/common/logger.cc | 14 +----- source/common/common/logger.h | 36 ++------------- source/common/common/standard/logger_impl.h | 9 ++++ 10 files changed, 150 insertions(+), 46 deletions(-) create mode 100644 source/common/common/android/logger_impl.cc create mode 100644 source/common/common/android/logger_impl.h create mode 100644 source/common/common/base_logger.cc create mode 100644 source/common/common/base_logger.h create mode 100644 source/common/common/standard/logger_impl.h diff --git a/bazel/BUILD b/bazel/BUILD index eccf2bb26a2eb..267f0741b3b09 100644 --- a/bazel/BUILD +++ b/bazel/BUILD @@ -323,6 +323,11 @@ config_setting( values = {"define": "manual_stamp=manual_stamp"}, ) +config_setting( + name = "android", + values = {"define": "platform=android"}, +) + alias( name = "apple", actual = select( diff --git a/bazel/envoy_build_system.bzl b/bazel/envoy_build_system.bzl index 4ae055e712892..9321d0ebf3eaf 100644 --- a/bazel/envoy_build_system.bzl +++ b/bazel/envoy_build_system.bzl @@ -121,6 +121,12 @@ def envoy_cc_platform_dep(name): "//conditions:default": [name + "_posix"], }) +def envoy_cc_platform_dep_android(name): + return select({ + "@envoy//bazel:android": [name + "android"], + "//conditions:default": [name + "_standard"], + }) + # Envoy proto descriptor targets should be specified with this function. # This is used for testing only. def envoy_proto_descriptor(name, out, srcs = [], external_deps = []): diff --git a/source/common/common/BUILD b/source/common/common/BUILD index ec8330f0c744c..0117479827c71 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -5,6 +5,7 @@ load( "envoy_basic_cc_library", "envoy_cc_library", "envoy_cc_platform_dep", + "envoy_cc_platform_dep_android", "envoy_cc_posix_library", "envoy_cc_win32_library", "envoy_include_prefix", @@ -130,15 +131,37 @@ envoy_cc_library( envoy_cc_library( name = "minimal_logger_lib", srcs = ["logger.cc"], - hdrs = ["logger.h"], + hdrs = [ + "logger.h", + ], external_deps = ["abseil_synchronization"], - deps = [ + deps = envoy_cc_platform_dep_android("logger_impl_lib") + [ + ":base_logger_lib", ":lock_guard_lib", ":macros", ":non_copyable", ], ) +envoy_cc_library( + name = "base_logger_lib", + srcs = ["base_logger.cc"], + hdrs = ["base_logger.h"], +) + +envoy_cc_library( + name = "logger_impl_lib_standard", + hdrs = ["standard/logger_impl.h"], + strip_include_prefix = "standard", +) + +envoy_cc_library( + name = "logger_impl_lib_android", + srcs = ["android/logger_impl.cc"], + hdrs = ["android/logger_impl.h"], + strip_include_prefix = "android", +) + envoy_cc_library( name = "mutex_tracer_lib", srcs = ["mutex_tracer_impl.cc"], diff --git a/source/common/common/android/logger_impl.cc b/source/common/common/android/logger_impl.cc new file mode 100644 index 0000000000000..bb8c530247df2 --- /dev/null +++ b/source/common/common/android/logger_impl.cc @@ -0,0 +1,15 @@ +#include "common/common/logger_impl.h" + +#include "spdlog/sinks/android_sink.h" + +namespace Envoy { +namespace Logger { + +#define GENERATE_LOGGER(X) AndroidLogger(#X), + +AndroidLogger::AndroidLogger(const std::string& name) + : Logger(std::make_shared( + name, std::make_shared>())) {} + +} // namespace Logger +} // namespace Envoy \ No newline at end of file diff --git a/source/common/common/android/logger_impl.h b/source/common/common/android/logger_impl.h new file mode 100644 index 0000000000000..84a7ef3dbea9b --- /dev/null +++ b/source/common/common/android/logger_impl.h @@ -0,0 +1,16 @@ +#pragma once + +#include "common/common/base_logger.h" + +namespace Envoy { +namespace Logger { + +class AndroidLogger : public Logger { +private: +AndroidLogger(const std:string& name); + +friend class Registry; +}; + +} // namespace Logger +} // namespace Envoy \ No newline at end of file diff --git a/source/common/common/base_logger.cc b/source/common/common/base_logger.cc new file mode 100644 index 0000000000000..bc2d7549e1efc --- /dev/null +++ b/source/common/common/base_logger.cc @@ -0,0 +1,17 @@ +#include "common/common/base_logger.h" + +namespace Envoy { +namespace Logger { + +const char* Logger::DEFAULT_LOG_FORMAT = "[%Y-%m-%d %T.%e][%t][%l][%n] %v"; + +Logger::Logger(std::shared_ptr logger) : logger_(logger) { + logger_->set_pattern(DEFAULT_LOG_FORMAT); + logger_->set_level(spdlog::level::trace); + + // Ensure that critical errors, especially ASSERT/PANIC, get flushed + logger_->flush_on(spdlog::level::critical); +} + +} // namespace Logger +} // namespace Envoy \ No newline at end of file diff --git a/source/common/common/base_logger.h b/source/common/common/base_logger.h new file mode 100644 index 0000000000000..d99a5f7ee86eb --- /dev/null +++ b/source/common/common/base_logger.h @@ -0,0 +1,51 @@ +#pragma once + +#include +#include + +#include "spdlog/spdlog.h" + +namespace Envoy { +namespace Logger { + +/** + * Logger wrapper for a spdlog logger. + */ +class Logger { +public: + /* This is simple mapping between Logger severity levels and spdlog severity levels. + * The only reason for this mapping is to go around the fact that spdlog defines level as err + * but the method to log at err level is called LOGGER.error not LOGGER.err. All other level are + * fine spdlog::info corresponds to LOGGER.info method. + */ + using Levels = enum { + trace = spdlog::level::trace, // NOLINT(readability-identifier-naming) + debug = spdlog::level::debug, // NOLINT(readability-identifier-naming) + info = spdlog::level::info, // NOLINT(readability-identifier-naming) + warn = spdlog::level::warn, // NOLINT(readability-identifier-naming) + error = spdlog::level::err, // NOLINT(readability-identifier-naming) + critical = spdlog::level::critical, // NOLINT(readability-identifier-naming) + off = spdlog::level::off // NOLINT(readability-identifier-naming) + }; + + spdlog::string_view_t levelString() const { + return spdlog::level::level_string_views[logger_->level()]; + } + std::string name() const { return logger_->name(); } + void setLevel(spdlog::level::level_enum level) { logger_->set_level(level); } + spdlog::level::level_enum level() const { return logger_->level(); } + + static const char* DEFAULT_LOG_FORMAT; + +protected: + Logger(std::shared_ptr logger); + +private: + std::shared_ptr logger_; // Use shared_ptr here to allow static construction + // of constant vector below. + // TODO(junr03): expand Logger's public API to delete this friendship. + friend class Registry; +}; + +} // namespace Logger +} // namespace Envoy \ No newline at end of file diff --git a/source/common/common/logger.cc b/source/common/common/logger.cc index a168b259d1225..3fe1fd0209745 100644 --- a/source/common/common/logger.cc +++ b/source/common/common/logger.cc @@ -16,18 +16,8 @@ namespace Envoy { namespace Logger { -#define GENERATE_LOGGER(X) Logger(#X), - -const char* Logger::DEFAULT_LOG_FORMAT = "[%Y-%m-%d %T.%e][%t][%l][%n] %v"; - -Logger::Logger(const std::string& name) { - logger_ = std::make_shared(name, Registry::getSink()); - logger_->set_pattern(DEFAULT_LOG_FORMAT); - logger_->set_level(spdlog::level::trace); - - // Ensure that critical errors, especially ASSERT/PANIC, get flushed - logger_->flush_on(spdlog::level::critical); -} +StandardLogger::StandardLogger(const std::string& name) + : Logger(std::make_shared(name, Registry::getSink())) {} SinkDelegate::SinkDelegate(DelegatingLogSinkSharedPtr log_sink) : previous_delegate_(log_sink->delegate()), log_sink_(log_sink) { diff --git a/source/common/common/logger.h b/source/common/common/logger.h index f3faa690b9394..5d98dbe1ba492 100644 --- a/source/common/common/logger.h +++ b/source/common/common/logger.h @@ -10,6 +10,8 @@ #include "common/common/fmt.h" #include "common/common/macros.h" #include "common/common/non_copyable.h" +#include "common/common/logger_impl.h" +#include "common/common/base_logger.h" #include "absl/strings/string_view.h" #include "absl/synchronization/mutex.h" @@ -71,40 +73,10 @@ enum class Id { }; // clang-format on -/** - * Logger wrapper for a spdlog logger. - */ -class Logger { -public: - /* This is simple mapping between Logger severity levels and spdlog severity levels. - * The only reason for this mapping is to go around the fact that spdlog defines level as err - * but the method to log at err level is called LOGGER.error not LOGGER.err. All other level are - * fine spdlog::info corresponds to LOGGER.info method. - */ - using Levels = enum { - trace = spdlog::level::trace, // NOLINT(readability-identifier-naming) - debug = spdlog::level::debug, // NOLINT(readability-identifier-naming) - info = spdlog::level::info, // NOLINT(readability-identifier-naming) - warn = spdlog::level::warn, // NOLINT(readability-identifier-naming) - error = spdlog::level::err, // NOLINT(readability-identifier-naming) - critical = spdlog::level::critical, // NOLINT(readability-identifier-naming) - off = spdlog::level::off // NOLINT(readability-identifier-naming) - }; - - spdlog::string_view_t levelString() const { - return spdlog::level::level_string_views[logger_->level()]; - } - std::string name() const { return logger_->name(); } - void setLevel(spdlog::level::level_enum level) { logger_->set_level(level); } - spdlog::level::level_enum level() const { return logger_->level(); } - - static const char* DEFAULT_LOG_FORMAT; - +class StandardLogger : public Logger { private: - Logger(const std::string& name); + StandardLogger(const std::string& name); - std::shared_ptr logger_; // Use shared_ptr here to allow static construction - // of constant vector below. friend class Registry; }; diff --git a/source/common/common/standard/logger_impl.h b/source/common/common/standard/logger_impl.h new file mode 100644 index 0000000000000..b8f9cd3148f85 --- /dev/null +++ b/source/common/common/standard/logger_impl.h @@ -0,0 +1,9 @@ +#pragma once + +namespace Envoy { +namespace Logger { + +#define GENERATE_LOGGER(X) StandardLogger(#X), + +} // namespace Logger +} // namespace Envoy \ No newline at end of file From e54c9601d28263e9692661e0ceaf3e3885bad1e8 Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Tue, 21 Jan 2020 16:02:27 -0800 Subject: [PATCH 2/8] fmt Signed-off-by: Jose Nino --- source/common/common/android/logger_impl.h | 4 ++-- source/common/common/logger.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/common/common/android/logger_impl.h b/source/common/common/android/logger_impl.h index 84a7ef3dbea9b..5a26d43fe05ff 100644 --- a/source/common/common/android/logger_impl.h +++ b/source/common/common/android/logger_impl.h @@ -7,9 +7,9 @@ namespace Logger { class AndroidLogger : public Logger { private: -AndroidLogger(const std:string& name); + AndroidLogger(const std : string& name); -friend class Registry; + friend class Registry; }; } // namespace Logger diff --git a/source/common/common/logger.h b/source/common/common/logger.h index 5d98dbe1ba492..3486050a22ce5 100644 --- a/source/common/common/logger.h +++ b/source/common/common/logger.h @@ -7,11 +7,11 @@ #include "envoy/thread/thread.h" +#include "common/common/base_logger.h" #include "common/common/fmt.h" +#include "common/common/logger_impl.h" #include "common/common/macros.h" #include "common/common/non_copyable.h" -#include "common/common/logger_impl.h" -#include "common/common/base_logger.h" #include "absl/strings/string_view.h" #include "absl/synchronization/mutex.h" From 56afdbe046f1649b34151c1d221dfbb3b2fe880a Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Tue, 21 Jan 2020 17:28:58 -0800 Subject: [PATCH 3/8] update Signed-off-by: Jose Nino --- bazel/BUILD | 4 ++-- bazel/README.md | 1 + bazel/envoy_build_system.bzl | 6 ------ source/common/common/BUILD | 9 ++++++--- source/common/common/android/logger_impl.cc | 2 -- source/common/common/android/logger_impl.h | 7 ++++++- source/common/common/logger.h | 3 +++ 7 files changed, 18 insertions(+), 14 deletions(-) diff --git a/bazel/BUILD b/bazel/BUILD index 267f0741b3b09..4e5b79f5e73cd 100644 --- a/bazel/BUILD +++ b/bazel/BUILD @@ -324,8 +324,8 @@ config_setting( ) config_setting( - name = "android", - values = {"define": "platform=android"}, + name = "android_logger", + values = {"define": "logger=android"}, ) alias( diff --git a/bazel/README.md b/bazel/README.md index 14ffa1c463a0b..c7818c16cdff9 100644 --- a/bazel/README.md +++ b/bazel/README.md @@ -448,6 +448,7 @@ The following optional features can be enabled on the Bazel build command-line: This is needed if the `version_info_lib` is compiled via a non-binary bazel rules, e.g `envoy_cc_library`. Otherwise, the linker will fail to resolve symbols that are included via the `linktamp` rule, which is only available to binary targets. This is being tracked as a feature in: https://github.com/envoyproxy/envoy/issues/6859. +* process logging for Android applications can be enabled with `--define logger=android`. ## Disabling extensions diff --git a/bazel/envoy_build_system.bzl b/bazel/envoy_build_system.bzl index 9321d0ebf3eaf..4ae055e712892 100644 --- a/bazel/envoy_build_system.bzl +++ b/bazel/envoy_build_system.bzl @@ -121,12 +121,6 @@ def envoy_cc_platform_dep(name): "//conditions:default": [name + "_posix"], }) -def envoy_cc_platform_dep_android(name): - return select({ - "@envoy//bazel:android": [name + "android"], - "//conditions:default": [name + "_standard"], - }) - # Envoy proto descriptor targets should be specified with this function. # This is used for testing only. def envoy_proto_descriptor(name, out, srcs = [], external_deps = []): diff --git a/source/common/common/BUILD b/source/common/common/BUILD index 0117479827c71..45a7f30b2f6f4 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -5,7 +5,6 @@ load( "envoy_basic_cc_library", "envoy_cc_library", "envoy_cc_platform_dep", - "envoy_cc_platform_dep_android", "envoy_cc_posix_library", "envoy_cc_win32_library", "envoy_include_prefix", @@ -135,12 +134,15 @@ envoy_cc_library( "logger.h", ], external_deps = ["abseil_synchronization"], - deps = envoy_cc_platform_dep_android("logger_impl_lib") + [ + deps = [ ":base_logger_lib", ":lock_guard_lib", ":macros", ":non_copyable", - ], + ] + select({ + "@envoy//bazel:android_logger": ["logger_impl_lib_android"], + "//conditions:default": ["logger_impl_lib_standard"], + }), ) envoy_cc_library( @@ -160,6 +162,7 @@ envoy_cc_library( srcs = ["android/logger_impl.cc"], hdrs = ["android/logger_impl.h"], strip_include_prefix = "android", + deps = [":base_logger_lib"], ) envoy_cc_library( diff --git a/source/common/common/android/logger_impl.cc b/source/common/common/android/logger_impl.cc index bb8c530247df2..dc8ee614dfb46 100644 --- a/source/common/common/android/logger_impl.cc +++ b/source/common/common/android/logger_impl.cc @@ -5,8 +5,6 @@ namespace Envoy { namespace Logger { -#define GENERATE_LOGGER(X) AndroidLogger(#X), - AndroidLogger::AndroidLogger(const std::string& name) : Logger(std::make_shared( name, std::make_shared>())) {} diff --git a/source/common/common/android/logger_impl.h b/source/common/common/android/logger_impl.h index 5a26d43fe05ff..600c4d17abd33 100644 --- a/source/common/common/android/logger_impl.h +++ b/source/common/common/android/logger_impl.h @@ -5,9 +5,14 @@ namespace Envoy { namespace Logger { +#define GENERATE_LOGGER(X) AndroidLogger(#X), + +/** + * Logger that uses spdlog::sinks::android_sink. + */ class AndroidLogger : public Logger { private: - AndroidLogger(const std : string& name); + AndroidLogger(const std::string& name); friend class Registry; }; diff --git a/source/common/common/logger.h b/source/common/common/logger.h index 3486050a22ce5..cc4352ea02133 100644 --- a/source/common/common/logger.h +++ b/source/common/common/logger.h @@ -73,6 +73,9 @@ enum class Id { }; // clang-format on +/** + * Logger that uses the DelegatingLogSink. + */ class StandardLogger : public Logger { private: StandardLogger(const std::string& name); From 158c0f9135febbdc464849e9ffb5d1876263babd Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Tue, 21 Jan 2020 17:35:24 -0800 Subject: [PATCH 4/8] fmt Signed-off-by: Jose Nino --- source/common/common/BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/common/common/BUILD b/source/common/common/BUILD index 45a7f30b2f6f4..469bd223a6b31 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -140,7 +140,7 @@ envoy_cc_library( ":macros", ":non_copyable", ] + select({ - "@envoy//bazel:android_logger": ["logger_impl_lib_android"], + "//bazel:android_logger": ["logger_impl_lib_android"], "//conditions:default": ["logger_impl_lib_standard"], }), ) From 505985f83051582c52ba9d1dda67bdb71a872524 Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Tue, 21 Jan 2020 17:37:25 -0800 Subject: [PATCH 5/8] fmt Signed-off-by: Jose Nino --- source/common/common/BUILD | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/source/common/common/BUILD b/source/common/common/BUILD index 469bd223a6b31..100a17a3fe555 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -130,9 +130,7 @@ envoy_cc_library( envoy_cc_library( name = "minimal_logger_lib", srcs = ["logger.cc"], - hdrs = [ - "logger.h", - ], + hdrs = ["logger.h"], external_deps = ["abseil_synchronization"], deps = [ ":base_logger_lib", From 7e51a7607172f0dfb9cc8decb16797e615098439 Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Tue, 21 Jan 2020 17:39:31 -0800 Subject: [PATCH 6/8] fmt Signed-off-by: Jose Nino --- source/common/common/android/logger_impl.cc | 2 +- source/common/common/android/logger_impl.h | 2 +- source/common/common/base_logger.cc | 2 +- source/common/common/base_logger.h | 2 +- source/common/common/standard/logger_impl.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/common/common/android/logger_impl.cc b/source/common/common/android/logger_impl.cc index dc8ee614dfb46..90af89767d041 100644 --- a/source/common/common/android/logger_impl.cc +++ b/source/common/common/android/logger_impl.cc @@ -10,4 +10,4 @@ AndroidLogger::AndroidLogger(const std::string& name) name, std::make_shared>())) {} } // namespace Logger -} // namespace Envoy \ No newline at end of file +} // namespace Envoy diff --git a/source/common/common/android/logger_impl.h b/source/common/common/android/logger_impl.h index 600c4d17abd33..11bb1a7a48383 100644 --- a/source/common/common/android/logger_impl.h +++ b/source/common/common/android/logger_impl.h @@ -18,4 +18,4 @@ class AndroidLogger : public Logger { }; } // namespace Logger -} // namespace Envoy \ No newline at end of file +} // namespace Envoy diff --git a/source/common/common/base_logger.cc b/source/common/common/base_logger.cc index bc2d7549e1efc..912c649337d65 100644 --- a/source/common/common/base_logger.cc +++ b/source/common/common/base_logger.cc @@ -14,4 +14,4 @@ Logger::Logger(std::shared_ptr logger) : logger_(logger) { } } // namespace Logger -} // namespace Envoy \ No newline at end of file +} // namespace Envoy diff --git a/source/common/common/base_logger.h b/source/common/common/base_logger.h index d99a5f7ee86eb..194dfde429d87 100644 --- a/source/common/common/base_logger.h +++ b/source/common/common/base_logger.h @@ -48,4 +48,4 @@ class Logger { }; } // namespace Logger -} // namespace Envoy \ No newline at end of file +} // namespace Envoy diff --git a/source/common/common/standard/logger_impl.h b/source/common/common/standard/logger_impl.h index b8f9cd3148f85..d99b1f4e07114 100644 --- a/source/common/common/standard/logger_impl.h +++ b/source/common/common/standard/logger_impl.h @@ -6,4 +6,4 @@ namespace Logger { #define GENERATE_LOGGER(X) StandardLogger(#X), } // namespace Logger -} // namespace Envoy \ No newline at end of file +} // namespace Envoy From 06937c01128e5191051fe5993d2d59640eee8dfe Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Wed, 22 Jan 2020 09:18:29 -0800 Subject: [PATCH 7/8] build target Signed-off-by: Jose Nino --- source/common/common/BUILD | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/common/common/BUILD b/source/common/common/BUILD index 100a17a3fe555..b99d9d0ec9959 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -157,8 +157,14 @@ envoy_cc_library( envoy_cc_library( name = "logger_impl_lib_android", - srcs = ["android/logger_impl.cc"], - hdrs = ["android/logger_impl.h"], + srcs = select({ + "//bazel:android_logger": ["android/logger_impl.cc"], + "//conditions:default": [], + }), + hdrs = select({ + "//bazel:android_logger": ["android/logger_impl.h"], + "//conditions:default": [], + }), strip_include_prefix = "android", deps = [":base_logger_lib"], ) From 919141ce2452ae6ad4093fd1bd224e62aae23b8c Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Fri, 24 Jan 2020 10:06:26 -0800 Subject: [PATCH 8/8] comments Signed-off-by: Jose Nino --- bazel/README.md | 2 +- source/common/common/BUILD | 1 + source/common/common/base_logger.h | 2 +- source/common/common/standard/logger_impl.h | 2 ++ 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bazel/README.md b/bazel/README.md index c7818c16cdff9..3bdd2fee08cd4 100644 --- a/bazel/README.md +++ b/bazel/README.md @@ -448,7 +448,7 @@ The following optional features can be enabled on the Bazel build command-line: This is needed if the `version_info_lib` is compiled via a non-binary bazel rules, e.g `envoy_cc_library`. Otherwise, the linker will fail to resolve symbols that are included via the `linktamp` rule, which is only available to binary targets. This is being tracked as a feature in: https://github.com/envoyproxy/envoy/issues/6859. -* process logging for Android applications can be enabled with `--define logger=android`. +* Process logging for Android applications can be enabled with `--define logger=android`. ## Disabling extensions diff --git a/source/common/common/BUILD b/source/common/common/BUILD index b99d9d0ec9959..feb5f85c467f1 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -153,6 +153,7 @@ envoy_cc_library( name = "logger_impl_lib_standard", hdrs = ["standard/logger_impl.h"], strip_include_prefix = "standard", + deps = [":base_logger_lib"], ) envoy_cc_library( diff --git a/source/common/common/base_logger.h b/source/common/common/base_logger.h index 194dfde429d87..4404c62d9ac07 100644 --- a/source/common/common/base_logger.h +++ b/source/common/common/base_logger.h @@ -42,7 +42,7 @@ class Logger { private: std::shared_ptr logger_; // Use shared_ptr here to allow static construction - // of constant vector below. + // of vector in Registry::allLoggers(). // TODO(junr03): expand Logger's public API to delete this friendship. friend class Registry; }; diff --git a/source/common/common/standard/logger_impl.h b/source/common/common/standard/logger_impl.h index d99b1f4e07114..a07664151c654 100644 --- a/source/common/common/standard/logger_impl.h +++ b/source/common/common/standard/logger_impl.h @@ -1,5 +1,7 @@ #pragma once +#include "common/common/base_logger.h" + namespace Envoy { namespace Logger {