/*
 * system_log.h
 *
 * Author: Ming Tsang
 * Copyright (c) 2014 Ming Tsang
 * Refer to LICENSE for details
 */

#pragma once

#include "libutils/misc/singleton.h"

namespace libutils
{
namespace io
{

template<typename T> class Logger;

}
}

namespace libutils
{
namespace io
{

/**
 * The default system logger
 */
template<typename CharT>
class SystemLog : public misc::Singleton<Logger<CharT>, SystemLog<CharT>>
{};

}
}

#include "libutils/io/logger.h"

/*
 * system_log.h
 *
 * Author: Ming Tsang
 * Copyright (c) 2014 Ming Tsang
 * Refer to LICENSE for details
 */

#pragma once

#include "libutils/io/logger.h"
#include "libutils/misc/singleton.h"

namespace libutils
{
namespace io
{

/**
 * The default system logger
 */
template<typename CharT>
class SystemLog : public misc::Singleton<Logger<CharT>, SystemLog<CharT>>
{};

}
}

--- 
+++ 
@@ -8,8 +8,17 @@
 
 #pragma once
 
-#include "libutils/io/logger.h"
 #include "libutils/misc/singleton.h"
+
+namespace libutils
+{
+namespace io
+{
+
+template<typename T> class Logger;
+
+}
+}
 
 namespace libutils
 {
@@ -25,3 +34,5 @@
 
 }
 }
+
+#include "libutils/io/logger.h"
Include logger.h later to prevent using SystemLog before definition