Cogs.Foundation
Loading...
Searching...
No Matches
Logger.h
Go to the documentation of this file.
1#pragma once
2
3#include "LogManager.h"
4
5#include <cstdio>
6#include <cstdlib>
7
8// Logging macros provided for convenience.
9
10#define LOG_TRACE(logInstance, ...) logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Trace, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
11#define LOG_TRACE_ONCE(logInstance, ...) do { static Cogs::Atomic<bool> first = true; const bool dolog = first.exchange(false); if(dolog) { logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Trace, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__); } } while(0)
12#define LOG_SOURCE_TRACE(source, ...) Cogs::Logging::logFileLine(__FILE__, __LINE__, source, Cogs::Logging::Category::Trace, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
13
14#define LOG_DEBUG(logInstance, ...) logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Debug, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
15#define LOG_DEBUG_ONCE(logInstance, ...) do { static Cogs::Atomic<bool> first = true; const bool dolog = first.exchange(false); if(dolog) { logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Debug, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__); } } while(0)
16#define LOG_SOURCE_DEBUG(source, ...) Cogs::Logging::logFileLine(__FILE__, __LINE__, source, Cogs::Logging::Category::Debug, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
17
18#define LOG_INFO(logInstance, ...) logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Info, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
19#define LOG_INFO_ONCE(logInstance, ...) do { static Cogs::Atomic<bool> first = true; const bool dolog = first.exchange(false); if(dolog) { logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Info, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__); } } while(0)
20#define LOG_SOURCE_INFO(source, ...) Cogs::Logging::logFileLine(__FILE__, __LINE__, source, Cogs::Logging::Category::Info, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
21
22#define LOG_WARNING(logInstance, ...) logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Warning, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
23#define LOG_WARNING_ONCE(logInstance, ...) do { static Cogs::Atomic<bool> first = true; const bool dolog = first.exchange(false); if(dolog) { logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Warning, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__); } } while(0)
24#define LOG_SOURCE_WARNING(source, ...) Cogs::Logging::logFileLine(__FILE__, __LINE__, source, Cogs::Logging::Category::Warning, __VA_ARGS__)
25#define LOG_WARNING_ERRNO(logInstance, errorNumber, ...) logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Warning, errorNumber, __VA_ARGS__)
26
27#define LOG_ERROR(logInstance, ...) logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Error, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
28#define LOG_ERROR_ONCE(logInstance, ...) do { static Cogs::Atomic<bool> first = true; const bool dolog = first.exchange(false); if(dolog) { logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Error, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__); } } while(0)
29#define LOG_SOURCE_ERROR(source, ...) Cogs::Logging::logFileLine(__FILE__, __LINE__, source, Cogs::Logging::Category::Error, __VA_ARGS__)
30#define LOG_ERROR_ERRNO(logInstance, errorNumber, ...) logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Error, errorNumber, __VA_ARGS__)
31
32#define LOG_FATAL(logInstance, ...) logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Fatal, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
33#define LOG_FATAL_ONCE(logInstance, ...) do { static Cogs::Atomic<bool> first = true; const bool dolog = first.exchange(false); if(dolog) { logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Fatal, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__); } } while(0)
34#define LOG_SOURCE_FATAL(source, ...) Cogs::Logging::logFileLine(__FILE__, __LINE__, source, Cogs::Logging::Category::Fatal, Cogs::Logging::ErrorGroup::Unspecified, __VA_ARGS__)
35#define LOG_FATAL_ERRNO(logInstance, errorNumber, ...) logInstance.logFileLine(__FILE__, __LINE__, Cogs::Logging::Category::Fatal, errorNumber, __VA_ARGS__)