318d13870f
## Motivation - Structured logging with proper log levels (TRACE, DEBUG, INFO, WARNING, ERROR, CRITICAL) - Better performance through compile-time formatting - Consistent formatting using fmt library - Runtime log level control via arguments and environment variables - Easier maintenance and debugging capabilities ## Technical Details - Added spdlog as a submodule and integrated it into CMake build system - Created new `rocprofiler-systems-logger` library wrapping spdlog functionality - Replaced custom logging macros (`ROCPROFSYS_VERBOSE`, `ROCPROFSYS_DEBUG`, `ROCPROFSYS_FATAL`, `ROCPROFSYS_REQUIRE`, `ROCPROFSYS_CI_THROW`, etc.) with spdlog equivalents (`LOG_DEBUG`, `LOG_WARNING`, `LOG_CRITICAL`, etc.) - Implemented log level control through command-line arguments and environment variables - Converted assertion macros to proper error handling with exceptions and std::abort()
41 lines
2.2 KiB
C++
41 lines
2.2 KiB
C++
// Copyright (c) Advanced Micro Devices, Inc.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
#pragma once
|
|
|
|
#include "logger.hpp"
|
|
|
|
#define LOG_CRITICAL(...) \
|
|
do \
|
|
{ \
|
|
rocprofsys::logger_t::instance().log( \
|
|
spdlog::source_loc{ __FILE__, __LINE__, __func__ }, spdlog::level::critical, \
|
|
__VA_ARGS__); \
|
|
rocprofsys::logger_t::instance().flush(); \
|
|
} while(0)
|
|
|
|
#define LOG_ERROR(...) \
|
|
rocprofsys::logger_t::instance().log( \
|
|
spdlog::source_loc{ __FILE__, __LINE__, __func__ }, spdlog::level::err, \
|
|
__VA_ARGS__)
|
|
|
|
#define LOG_WARNING(...) \
|
|
rocprofsys::logger_t::instance().log( \
|
|
spdlog::source_loc{ __FILE__, __LINE__, __func__ }, spdlog::level::warn, \
|
|
__VA_ARGS__)
|
|
|
|
#define LOG_INFO(...) \
|
|
rocprofsys::logger_t::instance().log( \
|
|
spdlog::source_loc{ __FILE__, __LINE__, __func__ }, spdlog::level::info, \
|
|
__VA_ARGS__)
|
|
|
|
#define LOG_DEBUG(...) \
|
|
rocprofsys::logger_t::instance().log( \
|
|
spdlog::source_loc{ __FILE__, __LINE__, __func__ }, spdlog::level::debug, \
|
|
__VA_ARGS__)
|
|
|
|
#define LOG_TRACE(...) \
|
|
rocprofsys::logger_t::instance().log( \
|
|
spdlog::source_loc{ __FILE__, __LINE__, __func__ }, spdlog::level::trace, \
|
|
__VA_ARGS__)
|