diff --git a/tests/unit-tests/util/logging.t.cpp b/tests/unit-tests/util/logging.t.cpp
index 172d58c..b431a05 100644
--- a/tests/unit-tests/util/logging.t.cpp
+++ b/tests/unit-tests/util/logging.t.cpp
@@ -31,8 +31,6 @@
 
 NDN_LOG_INIT(ndn.util.tests.Logging);
 
-using boost::test_tools::output_test_stream;
-
 void
 logFromModule1();
 
@@ -43,7 +41,7 @@
 logFromFilterModule();
 
 static void
-logFromNewLogger(const std::string& moduleName)
+logFromNewLogger(const char* moduleName)
 {
   Logger logger(moduleName);
   auto ndn_cxx_getLogger = [&logger] () -> Logger& { return logger; };
@@ -98,9 +96,11 @@
   }
 
 private:
-  NDN_LOG_MEMBER_INIT(ndn.util.tests.ClassWithLogger);
+  NDN_LOG_MEMBER_DECL();
 };
 
+NDN_LOG_MEMBER_INIT(ClassWithLogger, ndn.util.tests.ClassWithLogger);
+
 template<class T, class U>
 class ClassTemplateWithLogger
 {
@@ -150,7 +150,7 @@
   }
 
 protected:
-  output_test_stream os;
+  boost::test_tools::output_test_stream os;
 
 private:
   std::unordered_map<std::string, LogLevel> m_oldEnabledLevel;
@@ -162,9 +162,12 @@
 
 BOOST_AUTO_TEST_CASE(GetLoggerNames)
 {
-  NDN_LOG_TRACE("GetLoggerNames"); // to avoid unused function warning
+  // check that all names are registered from the start even if
+  // logger instances are lazily created on first use
+  auto n = Logging::getLoggerNames().size();
+  NDN_LOG_TRACE("GetLoggerNames");
   auto names = Logging::getLoggerNames();
-  BOOST_CHECK(!names.empty());
+  BOOST_CHECK_EQUAL(names.size(), n);
   BOOST_CHECK_EQUAL(names.count("ndn.util.tests.Logging"), 1);
 }
 
@@ -279,6 +282,10 @@
   BOOST_CHECK_EQUAL(levels.at("ndn.util.tests.ns1"), LogLevel::INFO);
   BOOST_CHECK_EQUAL(levels.at("ndn.util.tests.ns2"), LogLevel::DEBUG);
 
+  const auto& names = Logging::getLoggerNames();
+  BOOST_CHECK_EQUAL(names.count("ndn.util.tests.ns1"), 1);
+  BOOST_CHECK_EQUAL(names.count("ndn.util.tests.ns2"), 1);
+
   ns1::logFromNamespace1();
   ns2::logFromNamespace2();
 
@@ -295,6 +302,11 @@
   Logging::setLevel("ndn.util.tests.Specialized1", LogLevel::INFO);
   // ndn.util.tests.Specialized2 is not enabled
 
+  const auto& names = Logging::getLoggerNames();
+  BOOST_CHECK_EQUAL(names.count("ndn.util.tests.ClassWithLogger"), 1);
+  BOOST_CHECK_EQUAL(names.count("ndn.util.tests.Specialized1"), 1);
+  BOOST_CHECK_EQUAL(names.count("ndn.util.tests.Specialized2"), 1);
+
   ClassWithLogger::logFromStaticMemberFunction();
   ClassWithLogger{}.logFromConstMemberFunction();
 
@@ -322,6 +334,8 @@
   logFromModule1();
   logFromNewLogger("Module1");
 
+  BOOST_CHECK_EQUAL(Logging::getLoggerNames().count("Module1"), 1);
+
   Logging::flush();
   BOOST_CHECK(os.is_equal(
     LOG_SYSTIME_STR + " WARNING: [Module1] warn1\n" +
@@ -603,6 +617,8 @@
 
 BOOST_AUTO_TEST_CASE(ChangeDestination)
 {
+  using boost::test_tools::output_test_stream;
+
   logFromModule1();
 
   auto os2 = make_shared<output_test_stream>();
