debug_log.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // This file is part of Desktop App Toolkit,
  2. // a set of libraries for developing nice desktop applications.
  3. //
  4. // For license and copyright information please follow this link:
  5. // https://github.com/desktop-app/legal/blob/master/LEGAL
  6. //
  7. #pragma once
  8. #include "base/assertion.h" // SOURCE_FILE_BASENAME
  9. #include <QtCore/QString>
  10. namespace base {
  11. void LogWriteMain(const QString &message);
  12. void LogWriteDebug(const QString &message, const char *file, int line);
  13. [[nodiscard]] bool LogSkipDebug();
  14. [[nodiscard]] QString LogProfilePrefix();
  15. } // namespace base
  16. #define LOG(message) (::base::LogWriteMain(QString message))
  17. //usage LOG(("log: %1 %2").arg(1).arg(2))
  18. #define PROFILE_LOG(message) {\
  19. if (!::base::LogSkipDebug()) {\
  20. ::base::LogWriteMain(::base::LogProfilePrefix() + QString message);\
  21. }\
  22. }
  23. //usage PROFILE_LOG(("step: %1 %2").arg(1).arg(2))
  24. #define DEBUG_LOG(message) {\
  25. if (!::base::LogSkipDebug()) {\
  26. ::base::LogWriteDebug(QString message, SOURCE_FILE_BASENAME, __LINE__);\
  27. }\
  28. }
  29. //usage DEBUG_LOG(("log: %1 %2").arg(1).arg(2))