Explorar o código

Fix a few issues

Sam Jaffe %!s(int64=6) %!d(string=hai) anos
pai
achega
b102bfce07
Modificáronse 3 ficheiros con 37 adicións e 1 borrados
  1. 4 0
      logger.xcodeproj/project.pbxproj
  2. 3 1
      src/logger_impl.cxx
  3. 30 0
      src/loggers/default_layout.cxx

+ 4 - 0
logger.xcodeproj/project.pbxproj

@@ -14,6 +14,7 @@
 		CD1CDE9022542CC500E5B6B2 /* log_manager_test.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CD1CDE8F22542CC500E5B6B2 /* log_manager_test.cxx */; };
 		CD1CDE9222543E7E00E5B6B2 /* test_properties.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CD1CDE9122543E7E00E5B6B2 /* test_properties.cxx */; };
 		CD1CDEAF22556B7E00E5B6B2 /* logger_impl.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CD1CDEAE22556B7E00E5B6B2 /* logger_impl.cxx */; };
+		CD1CDEB122557FB600E5B6B2 /* default_layout.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CD1CDEB022557FB600E5B6B2 /* default_layout.cxx */; };
 		CD29739B1D7B401F00E37217 /* logger.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CD2973991D7B401F00E37217 /* logger.cxx */; };
 		CD3C80C01D6A2CA300ACC795 /* format.cxx in Sources */ = {isa = PBXBuildFile; fileRef = CD3C80BE1D6A2CA300ACC795 /* format.cxx */; };
 		CD6F73EC225187BE0081ED74 /* logger in Headers */ = {isa = PBXBuildFile; fileRef = CD6F73EA225187A10081ED74 /* logger */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -74,6 +75,7 @@
 		CD1CDE8F22542CC500E5B6B2 /* log_manager_test.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = log_manager_test.cxx; sourceTree = "<group>"; };
 		CD1CDE9122543E7E00E5B6B2 /* test_properties.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = test_properties.cxx; sourceTree = "<group>"; };
 		CD1CDEAE22556B7E00E5B6B2 /* logger_impl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = logger_impl.cxx; sourceTree = "<group>"; };
+		CD1CDEB022557FB600E5B6B2 /* default_layout.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = default_layout.cxx; sourceTree = "<group>"; };
 		CD2973991D7B401F00E37217 /* logger.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = logger.cxx; sourceTree = "<group>"; };
 		CD3C80BE1D6A2CA300ACC795 /* format.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = format.cxx; sourceTree = "<group>"; };
 		CD6F73EA225187A10081ED74 /* logger */ = {isa = PBXFileReference; lastKnownFileType = folder; name = logger; path = include/logger; sourceTree = "<group>"; };
@@ -136,6 +138,7 @@
 			children = (
 				CD1CDE862252E5B900E5B6B2 /* properties.cxx */,
 				CD1CDE882252E60900E5B6B2 /* file_appender.cxx */,
+				CD1CDEB022557FB600E5B6B2 /* default_layout.cxx */,
 				CD1CDE8A2252E61800E5B6B2 /* console_appender.cxx */,
 			);
 			path = loggers;
@@ -343,6 +346,7 @@
 				CD1CDEAF22556B7E00E5B6B2 /* logger_impl.cxx in Sources */,
 				CD1CDE892252E60900E5B6B2 /* file_appender.cxx in Sources */,
 				CD88E9632252D67A00927F40 /* common.cxx in Sources */,
+				CD1CDEB122557FB600E5B6B2 /* default_layout.cxx in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

+ 3 - 1
src/logger_impl.cxx

@@ -18,7 +18,9 @@ bool logger_impl::should_log(log_level ll) const {
 
 void logger_impl::write(logpacket const & pkt) {
   for (auto & pair : impls_) {
-    pair.first->write(pair.second->format(pkt));
+    if (pair.first->should_log(pkt.level)) {
+      pair.first->write(pair.second->format(pkt));
+    }
   }
 }
 

+ 30 - 0
src/loggers/default_layout.cxx

@@ -0,0 +1,30 @@
+//
+//  default_layout.cxx
+//  logging
+//
+//  Created by Sam Jaffe on 4/3/19.
+//
+
+#include "../../../../types/resource_factory/include/resource_factory/prototype_factory.hpp"
+
+#include "logger/detail/layout.h"
+#include "logger/log_manager.h"
+
+using namespace logging;
+
+struct default_layout : public layout {
+  static std::shared_ptr<layout> create(properties const &);
+  std::string format(logpacket const & pkt) const override;
+};
+
+std::shared_ptr<layout> default_layout::create(properties const &) {
+  return std::make_shared<default_layout>();
+}
+
+std::string default_layout::format(logpacket const & pkt) const {
+  return pkt.message;
+}
+
+namespace {
+  bool _ = layouts::instance().bind("default", default_layout::create);
+}