Ver Fonte

Add linkage and fix test for thread_id.
TODO: Add a mechanism to link thread_name

Sam Jaffe há 5 anos atrás
pai
commit
0a7fafb91c

+ 3 - 1
src/data_accessors.cxx

@@ -45,7 +45,9 @@ namespace logging { namespace detail {
     return ss.str();
   }
   
-//  std::string thread_info_helper::thread_name() const;
+  std::string thread_info_helper::thread_name() const {
+    return thread_id();
+  }
   
   std::vector<std::string>
   calling_class_helper::full_name(logpacket const & packet) const {

+ 8 - 1
src/loggers/pattern_layout_format.cxx

@@ -31,6 +31,13 @@ namespace logging { namespace {
       os << lp.logger;
     }
   };
+  
+  struct thread_name_gen : public detail::thread_info_helper,
+                           public format::generator_t {
+    std::string str(logpacket const &) const override {
+      return thread_name();
+    }
+  };
 
   struct time_elapsed_gen : public detail::time_elapsed_helper,
                             public format::generator_t {
@@ -146,7 +153,7 @@ namespace logging {
     } else if (is('m')) {
       return std::make_shared<message_gen>();
     } else if (is('t')) {
-      return std::make_shared<literal_gen>("???");
+      return std::make_shared<thread_name_gen>();
     } else {
       std::string error_msg{"unknown format character: '"};
       throw unknown_format_specifier{error_msg + *next + "'"};

+ 2 - 2
test/pattern_layout_test.cxx

@@ -269,8 +269,8 @@ TEST(PatternLayoutTest, TokenCanBeTruncatedInFormat) {
               Eq("HEL"));
   EXPECT_THAT(DoFormat("%.5c", getpkt("HELLO")),
               Eq("UNIT_"));
-  EXPECT_THAT(DoFormat("%.1t", getpkt("HELLO")),
-              Eq("?"));
+  EXPECT_THAT(DoFormat("%.2t", getpkt("HELLO")),
+              Eq("0x"));
 }
 
 TEST(PatternLayoutTest, TokenCanBeLeftPadded) {