Build tool
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

logger.h 530B

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include <string>
  3. #include <mutex>
  4. #include <iostream>
  5. namespace logger {
  6. extern std::mutex mut;
  7. class Timer {
  8. public:
  9. Timer();
  10. void restart();
  11. void print(std::ostream &os) const;
  12. private:
  13. double start_;
  14. };
  15. template<typename T>
  16. inline void log(const T &msg) {
  17. std::unique_lock<std::mutex> lock(mut);
  18. std::cerr << msg << '\n';
  19. }
  20. template<typename T>
  21. inline void log(const T &msg, const Timer &t) {
  22. std::unique_lock<std::mutex> lock(mut);
  23. std::cerr << msg;
  24. t.print(std::cerr);
  25. std::cerr << '\n';
  26. }
  27. }