doc+src: More reorganization and fixing of README
Change-Id: I8ff2dcdabd78f38cc0d5b826883121a9444ef664
diff --git a/src/logger.hpp b/src/logger.hpp
new file mode 100644
index 0000000..706c6df
--- /dev/null
+++ b/src/logger.hpp
@@ -0,0 +1,117 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/**
+ * Copyright (C) 2014 University of Arizona.
+ *
+ * GNU 3.0 License, see the LICENSE file for more information
+ *
+ * Author: Jerald Paul Abraham <jeraldabraham@email.arizona.edu>
+ */
+
+#ifndef NTG_LOGGER_HPP
+#define NTG_LOGGER_HPP
+
+#include <string>
+#include <boost/filesystem.hpp>
+#include <boost/date_time/posix_time/posix_time.hpp>
+
+namespace ndn {
+
+class Logger
+{
+public:
+ Logger(const std::string& module)
+ : m_module(module)
+ {
+ }
+
+ void
+ shutdownLogger()
+ {
+ if (m_logFile.is_open())
+ {
+ log("Terminating Logging Operations" , true, true);
+ m_logFile.close();
+ }
+ }
+
+ static std::string
+ getTimestamp()
+ {
+ boost::posix_time::ptime now;
+ now = boost::posix_time::second_clock::local_time();
+ return to_simple_string(now);
+ }
+
+ void
+ log(const std::string& logLine, bool printTime, bool printToConsole)
+ {
+ if( m_logLocation.length() > 0 )
+ {
+ if (printTime)
+ m_logFile << getTimestamp() << " - ";
+ m_logFile << logLine << std::endl;
+ m_logFile.flush();
+ if (printToConsole)
+ {
+ if (printTime)
+ std::cout << getTimestamp() << " - ";
+ std::cout << logLine << std::endl;
+ }
+ }
+ else
+ {
+ if (printTime)
+ std::cout << getTimestamp() << " - ";
+ std::cout << logLine << std::endl;
+ }
+ }
+
+ void
+ initializeLog(const std::string& instanceId)
+ {
+ char* variableValue = std::getenv("NDN_TRAFFIC_LOGFOLDER");
+ std::string logFilename;
+ m_logLocation = "";
+ if (variableValue != NULL)
+ m_logLocation = variableValue;
+ if (boost::filesystem::exists(boost::filesystem::path(m_logLocation)))
+ {
+ if (boost::filesystem::is_directory(boost::filesystem::path(m_logLocation)))
+ {
+ logFilename = m_logLocation + "/" + m_module + "_" + instanceId + ".log";
+ m_logFile.open(logFilename.c_str(), std::ofstream::out | std::ofstream::trunc);
+ if (m_logFile.is_open())
+ std::cout << "Log File Initialized: " << logFilename << std::endl;
+ else
+ {
+ std::cout << "ERROR - Unable To Initialize A Log File At: "
+ << m_logLocation << std::endl
+ << "Using Default Output For Logging." << std::endl;
+ m_logLocation = "";
+ }
+ }
+ else
+ {
+ std::cout << "Environment Variable NDN_TRAFFIC_LOGFOLDER Should Be A Folder."
+ << std::endl
+ << "Using Default Output For Logging." << std::endl;
+ m_logLocation = "";
+ }
+ }
+ else
+ {
+ std::cout << "Environment Variable NDN_TRAFFIC_LOGFOLDER Not Set." << std::endl
+ << "Using Default Output For Logging." << std::endl;
+ m_logLocation = "";
+ }
+ }
+
+private:
+ std::string m_module;
+ std::string m_logLocation;
+ std::ofstream m_logFile;
+};
+
+} // namespace ndn
+
+#endif // NTG_LOGGER_HPP