Files
rocm-systems/projects/rocprofiler-systems/source/lib/logger/debug.hpp
T
Milan Radosavljevic 318d13870f [rocprofiler-systems] Update logging to use spdlog library (#2428)
## 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()
2026-01-14 15:27:51 -05:00

41 wiersze
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__)