CmLog.cpp 970 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "CmLog.h"
  2. #include "CmException.h"
  3. #include "boost/signal.hpp"
  4. namespace CamelotFramework
  5. {
  6. LogEntry::LogEntry(const String& msg, const String& level)
  7. :mMsg(msg), mChannel(level)
  8. { }
  9. Log::Log()
  10. {
  11. }
  12. Log::~Log()
  13. {
  14. for(auto iter = mEntries.begin(); iter != mEntries.end(); ++iter)
  15. cm_delete<PoolAlloc>(*iter);
  16. }
  17. void Log::logMsg(const String& message, const String& level)
  18. {
  19. LogEntry* newEntry = cm_new<LogEntry, PoolAlloc>(message, level);
  20. mEntries.push_back(newEntry);
  21. doOnEntryAdded(*newEntry);
  22. }
  23. void Log::clear()
  24. {
  25. for(auto iter = mEntries.begin(); iter != mEntries.end(); ++iter)
  26. cm_delete<PoolAlloc>(*iter);
  27. mEntries.clear();
  28. }
  29. void Log::saveToFile(const WString& path)
  30. {
  31. // TODO - Save the log as HTML
  32. CM_EXCEPT(NotImplementedException, "Log save to file not yet implemented.");
  33. }
  34. void Log::doOnEntryAdded(const LogEntry& entry)
  35. {
  36. onEntryAdded(entry);
  37. }
  38. }