diff --git a/daemon/core/logger.hpp b/daemon/core/logger.hpp
index e483ac9..6732384 100644
--- a/daemon/core/logger.hpp
+++ b/daemon/core/logger.hpp
@@ -50,10 +50,24 @@
 std::ostream&
 operator<<(std::ostream& output, const Logger& obj);
 
-#define NFD_LOG_INIT(name)    \
+#define NFD_LOG_INIT(name) \
   static nfd::Logger \
   g_logger = nfd::Logger(name);
 
+#define NFD_LOG_INCLASS_DECLARE()        \
+  static nfd::Logger g_logger;
+
+#define NFD_LOG_INCLASS_DEFINE(cls, name)        \
+  nfd::Logger cls::g_logger = nfd::Logger(name);
+
+#define NFD_LOG_INCLASS_TEMPLATE_DEFINE(cls, name)   \
+  template<class T> \
+  nfd::Logger cls<T>::g_logger = nfd::Logger(name);
+
+#define NFD_LOG_INCLASS_TEMPLATE_SPECIALIZATION_DEFINE(cls, specialization, name)    \
+  template<> \
+  nfd::Logger cls<specialization>::g_logger = nfd::Logger(name);
+
 #define NFD_LOG_TRACE(expression) \
     if(g_logger.isEnabled(nfd::LOG_TRACE)) \
        std::cerr<<"TRACE: "<<"["<<g_logger<<"] " << expression << "\n"
diff --git a/tests/core/logger.cpp b/tests/core/logger.cpp
index 35fd66c..ca55c37 100644
--- a/tests/core/logger.cpp
+++ b/tests/core/logger.cpp
@@ -15,154 +15,127 @@
 
 BOOST_AUTO_TEST_SUITE(CoreLogger)
 
-BOOST_AUTO_TEST_CASE(Warn)
+struct LoggerFixture
 {
-  std::stringstream input;
-  input << "warnTest";
-  
-  std::stringstream buffer;
+  LoggerFixture()
+    : m_savedBuf(std::cerr.rdbuf())
+  {
+    std::cerr.rdbuf(m_buffer.rdbuf());
+  }
 
-  // save cerr's buffer here
-  std::streambuf* sbuf = std::cerr.rdbuf();
+  ~LoggerFixture()
+  {
+    std::cerr.rdbuf(m_savedBuf);
+  }
+  
+  std::stringstream m_buffer;
+  std::streambuf* m_savedBuf;
+};
 
-  // redirect cerr to the buffer
-  std::cerr.rdbuf(buffer.rdbuf());
-
-  NFD_LOG_INIT("WarnTest");
-  NFD_LOG_WARN(input);
+BOOST_FIXTURE_TEST_CASE(Basic, LoggerFixture)
+{
+  NFD_LOG_INIT("BasicTests");
   
-  // redirect cerr back
-  std::cerr.rdbuf(sbuf);
+  NFD_LOG_TRACE("trace message JHGFDSR^1");
+  NFD_LOG_DEBUG("debug message IGg2474fdksd fo " << 15 << 16 << 17);
+  NFD_LOG_WARN("warning message XXXhdhd11" << 1 << "x");
+  NFD_LOG_INFO("info message Jjxjshj13"); 
+  NFD_LOG_ERROR("error message !#$&^%$#@");
+  NFD_LOG_FATAL("fatal message JJSjaamcng");
   
-  std::stringstream trueValue;
-  trueValue << "WARNING: [WarnTest] " << input <<"\n";
-  
-  BOOST_CHECK_EQUAL(buffer.str(), trueValue.str());
+  BOOST_CHECK_EQUAL(m_buffer.str(),
+                    "TRACE: [BasicTests] trace message JHGFDSR^1\n"
+                    "DEBUG: [BasicTests] debug message IGg2474fdksd fo 151617\n"
+                    "WARNING: [BasicTests] warning message XXXhdhd111x\n"
+                    "INFO: [BasicTests] info message Jjxjshj13\n"
+                    "ERROR: [BasicTests] error message !#$&^%$#@\n"
+                    "FATAL: [BasicTests] fatal message JJSjaamcng\n"
+                    );
 }
 
-BOOST_AUTO_TEST_CASE(Debug)
+class InClassLogger : public LoggerFixture
 {
-  std::stringstream input;
-  input << "debugTest";
-  
-  std::stringstream buffer;
+public:
+  void
+  writeLogs()
+  {
+    NFD_LOG_TRACE("trace message JHGFDSR^1");
+    NFD_LOG_DEBUG("debug message IGg2474fdksd fo " << 15 << 16 << 17);
+    NFD_LOG_WARN("warning message XXXhdhd11" << 1 << "x");
+    NFD_LOG_INFO("info message Jjxjshj13"); 
+    NFD_LOG_ERROR("error message !#$&^%$#@");
+    NFD_LOG_FATAL("fatal message JJSjaamcng");
+  }
+    
+private:
+  NFD_LOG_INCLASS_DECLARE();
+};
 
-  // save cerr's buffer here
-  std::streambuf* sbuf = std::cerr.rdbuf();
+NFD_LOG_INCLASS_DEFINE(InClassLogger, "InClassLogger");
 
-  // redirect cerr to the buffer
-  std::cerr.rdbuf(buffer.rdbuf());
-
-  NFD_LOG_INIT("DebugTest");
-  NFD_LOG_DEBUG(input);
+BOOST_FIXTURE_TEST_CASE(InClass, InClassLogger)
+{
+  writeLogs();
   
-  // redirect cerr back
-  std::cerr.rdbuf(sbuf);
-  
-  std::stringstream trueValue;
-  trueValue << "DEBUG: [DebugTest] " << input <<"\n";
-  
-  BOOST_CHECK_EQUAL(buffer.str(), trueValue.str());
+  BOOST_CHECK_EQUAL(m_buffer.str(),
+                    "TRACE: [InClassLogger] trace message JHGFDSR^1\n"
+                    "DEBUG: [InClassLogger] debug message IGg2474fdksd fo 151617\n"
+                    "WARNING: [InClassLogger] warning message XXXhdhd111x\n"
+                    "INFO: [InClassLogger] info message Jjxjshj13\n"
+                    "ERROR: [InClassLogger] error message !#$&^%$#@\n"
+                    "FATAL: [InClassLogger] fatal message JJSjaamcng\n"
+                    );
 }
 
-BOOST_AUTO_TEST_CASE(Info)
+
+template<class T>
+class InClassTemplateLogger : public LoggerFixture
 {
-  std::stringstream input;
-  input << "infotest";
-  
-  std::stringstream buffer;
+public:
+  void
+  writeLogs()
+  {
+    NFD_LOG_TRACE("trace message JHGFDSR^1");
+    NFD_LOG_DEBUG("debug message IGg2474fdksd fo " << 15 << 16 << 17);
+    NFD_LOG_WARN("warning message XXXhdhd11" << 1 << "x");
+    NFD_LOG_INFO("info message Jjxjshj13"); 
+    NFD_LOG_ERROR("error message !#$&^%$#@");
+    NFD_LOG_FATAL("fatal message JJSjaamcng");
+  }
+    
+private:
+  NFD_LOG_INCLASS_DECLARE();
+};
 
-  // save cerr's buffer here
-  std::streambuf* sbuf = std::cerr.rdbuf();
+NFD_LOG_INCLASS_TEMPLATE_DEFINE(InClassTemplateLogger, "GenericInClassTemplateLogger");
+NFD_LOG_INCLASS_TEMPLATE_SPECIALIZATION_DEFINE(InClassTemplateLogger, int, "IntInClassLogger");
 
-  // redirect cerr to the buffer
-  std::cerr.rdbuf(buffer.rdbuf());
-
-  NFD_LOG_INIT("InfoTest");
-  NFD_LOG_INFO(input);
+BOOST_FIXTURE_TEST_CASE(GenericInTemplatedClass, InClassTemplateLogger<bool>)
+{
+  writeLogs();
   
-  // redirect cerr back
-  std::cerr.rdbuf(sbuf);
-  
-  std::stringstream trueValue;
-  trueValue << "INFO: [InfoTest] " << input <<"\n";
-  
-  BOOST_CHECK_EQUAL(buffer.str(), trueValue.str());
+  BOOST_CHECK_EQUAL(m_buffer.str(),
+                    "TRACE: [GenericInClassTemplateLogger] trace message JHGFDSR^1\n"
+                    "DEBUG: [GenericInClassTemplateLogger] debug message IGg2474fdksd fo 151617\n"
+                    "WARNING: [GenericInClassTemplateLogger] warning message XXXhdhd111x\n"
+                    "INFO: [GenericInClassTemplateLogger] info message Jjxjshj13\n"
+                    "ERROR: [GenericInClassTemplateLogger] error message !#$&^%$#@\n"
+                    "FATAL: [GenericInClassTemplateLogger] fatal message JJSjaamcng\n"
+                    );
 }
 
-BOOST_AUTO_TEST_CASE(Fatal)
+BOOST_FIXTURE_TEST_CASE(SpecializedInTemplatedClass, InClassTemplateLogger<int>)
 {
-  std::stringstream input;
-  input << "fataltest";
+  writeLogs();
   
-  std::stringstream buffer;
-
-  // save cerr's buffer here
-  std::streambuf* sbuf = std::cerr.rdbuf();
-
-  // redirect cerr to the buffer
-  std::cerr.rdbuf(buffer.rdbuf());
-
-  NFD_LOG_INIT("FatalTest");
-  NFD_LOG_FATAL(input);
-  
-  // redirect cerr back
-  std::cerr.rdbuf(sbuf);
-  
-  std::stringstream trueValue;
-  trueValue << "FATAL: [FatalTest] " << input <<"\n";
-  
-  BOOST_CHECK_EQUAL(buffer.str(), trueValue.str());
-}
-
-BOOST_AUTO_TEST_CASE(Error)
-{
-  std::stringstream input;
-  input << "errortest";
-  
-  std::stringstream buffer;
-
-  // save cerr's buffer here
-  std::streambuf* sbuf = std::cerr.rdbuf();
-
-  // redirect cerr to the buffer
-  std::cerr.rdbuf(buffer.rdbuf());
-
-  NFD_LOG_INIT("ErrorTest");
-  NFD_LOG_ERROR(input);
-  
-  // redirect cerr back
-  std::cerr.rdbuf(sbuf);
-  
-  std::stringstream trueValue;
-  trueValue << "ERROR: [ErrorTest] " << input <<"\n";
-  
-  BOOST_CHECK_EQUAL(buffer.str(), trueValue.str());
-}
-
-BOOST_AUTO_TEST_CASE(Trace)
-{
-  std::stringstream input;
-  input << "tracetest";
-  
-  std::stringstream buffer;
-
-  // save cerr's buffer here
-  std::streambuf* sbuf = std::cerr.rdbuf();
-
-  // redirect cerr to the buffer
-  std::cerr.rdbuf(buffer.rdbuf());
-
-  NFD_LOG_INIT("TraceTest");
-  NFD_LOG_TRACE(input);
-  
-  // redirect cerr back
-  std::cerr.rdbuf(sbuf);
-  
-  std::stringstream trueValue;
-  trueValue << "TRACE: [TraceTest] " << input <<"\n";
-  
-  BOOST_CHECK_EQUAL(buffer.str(), trueValue.str());
+  BOOST_CHECK_EQUAL(m_buffer.str(),
+                    "TRACE: [IntInClassLogger] trace message JHGFDSR^1\n"
+                    "DEBUG: [IntInClassLogger] debug message IGg2474fdksd fo 151617\n"
+                    "WARNING: [IntInClassLogger] warning message XXXhdhd111x\n"
+                    "INFO: [IntInClassLogger] info message Jjxjshj13\n"
+                    "ERROR: [IntInClassLogger] error message !#$&^%$#@\n"
+                    "FATAL: [IntInClassLogger] fatal message JJSjaamcng\n"
+                    );
 }
 
 BOOST_AUTO_TEST_SUITE_END()
