On this page
article
peary/log/log.hpp
peary/log/log.hpp
Peary Logging Macros. More…
Defines
| Name | |
|---|---|
| FILE_NAME Base name of the file without the directory. | |
| LOG_NAME Name of the log stream. | |
| IFLOG(level) Execute a block only if the reporting level is high enough. | |
| LOG(level) Create a logging stream if the reporting level is high enough. | |
| LOG_PROGRESS(level, identifier) Create a logging stream that overwrites the line if the previous message has the same identifier. | |
| LOGTIME Get the current timestamp for logging. |
Detailed Description
Peary Logging Macros.
Copyright: Copyright (c) 2016-2025 CERN and the Peary Caribou authors. This software is distributed under the terms of the LGPL-3.0-only License, copied verbatim in the file “LICENSE.md”. SPDX-License-Identifier: LGPL-3.0-only
Macros Documentation
define FILE_NAME
#define __FILE_NAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
Base name of the file without the directory.
define LOG_NAME
#define __LOG_NAME__ ""
Name of the log stream.
define IFLOG
#define IFLOG(
level
)
if(peary::log::LogLevel::level <= peary::log::Log::getReportingLevel() && !peary::log::Log::getStreams().empty())
Execute a block only if the reporting level is high enough.
Parameters:
- level The minimum log level
define LOG
#define LOG(
level
)
if(peary::log::LogLevel::level <= peary::log::Log::getReportingLevel() && !peary::log::Log::getStreams().empty()) \
peary::log::Log().getStream(peary::log::LogLevel::level, \
__FILE_NAME__, \
std::string(static_cast<const char*>(__func__)), \
__LINE__, \
__LOG_NAME__)
Create a logging stream if the reporting level is high enough.
Parameters:
- level The log level of the stream
define LOG_PROGRESS
#define LOG_PROGRESS(
level,
identifier
)
if(peary::log::LogLevel::level <= peary::log::Log::getReportingLevel() && !peary::log::Log::getStreams().empty()) \
peary::log::Log().getProcessStream(identifier, \
peary::log::LogLevel::level, \
__FILE_NAME__, \
std::string(static_cast<const char*>(__func__)), \
__LINE__, \
__LOG_NAME__)
Create a logging stream that overwrites the line if the previous message has the same identifier.
Parameters:
- level The log level of the stream
- identifier Identifier for this stream to determine overwrites
define LOGTIME
#define LOGTIME peary::log::Log::getTimestamp()
Get the current timestamp for logging.
Source code
#pragma once
#ifdef WIN32
#define __func__ __FUNCTION__
#endif
#include <cstring>
#include <mutex>
#include <ostream>
#include <sstream>
#include <string>
#include <vector>
#include "peary/log/logging.hpp"
#ifndef __FILE_NAME__
#define __FILE_NAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
#endif
#ifdef PEARY_DEVICE_NAME
#define __LOG_NAME__ PEARY_DEVICE_NAME
#else
#define __LOG_NAME__ ""
#endif
#define IFLOG(level) \
if(peary::log::LogLevel::level <= peary::log::Log::getReportingLevel() && !peary::log::Log::getStreams().empty())
#define LOG(level) \
if(peary::log::LogLevel::level <= peary::log::Log::getReportingLevel() && !peary::log::Log::getStreams().empty()) \
peary::log::Log().getStream(peary::log::LogLevel::level, \
__FILE_NAME__, \
std::string(static_cast<const char*>(__func__)), \
__LINE__, \
__LOG_NAME__)
#define LOG_PROGRESS(level, identifier) \
if(peary::log::LogLevel::level <= peary::log::Log::getReportingLevel() && !peary::log::Log::getStreams().empty()) \
peary::log::Log().getProcessStream(identifier, \
peary::log::LogLevel::level, \
__FILE_NAME__, \
std::string(static_cast<const char*>(__func__)), \
__LINE__, \
__LOG_NAME__)
#define LOGTIME peary::log::Log::getTimestamp()
Updated on 2025-11-14 at 11:31:23 +0100