logger.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include<__vic/logger.h>
  2. #include<iostream>
  3. #include<exception>
  4. //////////////////////////////////////////////////////////////////////////////
  5. class clogger : public __vic::logger
  6. {
  7. public:
  8. explicit clogger(message_severity level = severity::info)
  9. : logger(level) {}
  10. protected:
  11. void publish_record(message_severity s, const char *rec, size_t rec_len)
  12. {
  13. (std::clog << to_string(s) << ": ").write(rec, rec_len) << std::endl;
  14. }
  15. };
  16. //////////////////////////////////////////////////////////////////////////////
  17. void run_tests()
  18. {
  19. clogger log(clogger::severity::debug);
  20. log.info() << "Application is started";
  21. for(int i = 0; i < 5; i++)
  22. log.debug() << "Loop i = " << i;
  23. // Explicit log record construction
  24. {
  25. clogger::record rec = log.warning();
  26. rec << "a ";
  27. rec << "b ";
  28. rec << "c";
  29. }
  30. log.warning("Application end");
  31. }
  32. int main()
  33. {
  34. try
  35. {
  36. run_tests();
  37. return 0;
  38. }
  39. catch(const std::exception &ex)
  40. {
  41. std::cerr << ex.what() << '\n';
  42. }
  43. return 1;
  44. }