Advertisement
Guest User

logger idea

a guest
Jul 29th, 2016
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4.  
  5.  
  6. class Log {
  7. public:
  8. virtual void write(const char* msg) = 0;
  9. virtual std::string toString(){return logString;}
  10. protected:
  11. std::string logString;
  12. };
  13.  
  14. class ConsoleLog : public Log {
  15. public:
  16. void write(const char* msg){s << msg << "\n"; logString += msg;}
  17. protected:
  18. std::ostringstream s;
  19. };
  20.  
  21. class StandardLog : public Log {
  22. public:
  23. void write(const char* msg){std::cout << msg << std::endl; logString += msg;}
  24. };
  25.  
  26. class Logger {
  27. public:
  28. Logger(){log = new StandardLog();}
  29. Logger(Log* log){this->log = log;}
  30. void write(const char* msg){log->write(msg);}
  31. std::string toString(){return log->toString();}
  32. protected:
  33. Log* log;// = new StandardLog();
  34. };
  35.  
  36. int main()
  37. {
  38. Logger logger;//new ConsoleLog());
  39. logger.write("this is a test message");
  40. std::cout << logger.toString() << std::endl;
  41. return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement