選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

45 行
1.0 KiB

  1. #pragma once
  2. #include <chrono>
  3. #include <thread>
  4. #include <memory>
  5. namespace cpplogging
  6. {
  7. /**
  8. * @brief Log level.
  9. */
  10. enum class log_level
  11. {
  12. unknown = 0,
  13. debug,
  14. info,
  15. warn,
  16. error,
  17. };
  18. /**
  19. * @brief Log entry that stored all relevant information for a logged message.
  20. */
  21. struct log_entry
  22. {
  23. using clock_type = std::chrono::steady_clock;
  24. using uptime_type = clock_type::time_point;
  25. log_level level { log_level::debug };
  26. uptime_type uptime { clock_type::now() };
  27. time_t systime { std::time(nullptr) };
  28. const void* sender { nullptr };
  29. std::string sender_type { "void" };
  30. std::thread::id thread { std::this_thread::get_id() };
  31. const char* file { nullptr };
  32. int line { 0 };
  33. std::string name;
  34. std::string message;
  35. };
  36. using log_entry_ptr_s = std::shared_ptr<log_entry>;
  37. }