3#include "../StringView.h"
8 #define VALIDATE_ARGS(a)
10 #define _Printf_format_string_
11 #define VALIDATE_ARGS(a) __attribute__((format(printf, a, a+1)))
22 using LoggerCallback = void(
const char* message,
const char* source,
int category);
25 using FileLineLoggerCallback = void(
const char* file,
int line,
const char* message,
const char* source,
int category);
145 constexpr explicit Log(
const char(&n)[LEN]) noexcept : literalName(n) {}
151 va_start(argptr, fmt);
160 va_start(argptr, fmt);
165 [[nodiscard]]
constexpr const char*
getName() const noexcept {
172 const char* literalName =
nullptr;
#define COGSFOUNDATION_API
Definition: FoundationBase.h:31
#define VALIDATE_ARGS(a)
Definition: LogManager.h:11
#define _Printf_format_string_
Definition: LogManager.h:10
Cogs::StringView getName()
Definition: Name.h:23
Log implementation class.
Definition: LogManager.h:140
void logFileLine(const char *file, const int line, const Category category, uint32_t errorNumber, _Printf_format_string_ const char *fmt,...) const VALIDATE_ARGS(6)
Log a formatted message with file/line information.
Definition: LogManager.h:148
constexpr Log(const char(&n)[LEN]) noexcept
Definition: LogManager.h:145
constexpr const char * getName() const noexcept
Definition: LogManager.h:165
Log()=default
Default constructor available to dervied types.
void log(const Category category, uint32_t errorNumber, _Printf_format_string_ const char *fmt,...) const VALIDATE_ARGS(4)
Log a formatted message.
Definition: LogManager.h:157
Provides a weakly referenced view over the contents of a string.
Definition: StringView.h:24
void COGSFOUNDATION_API enableUnhandledExceptionLogging()
Enable catching and logging of hardware exceptions (crashes) before exiting. (Windows only - for now....
Definition: LogManager.cpp:245
void COGSFOUNDATION_API registerConsumer(Consumer *consumer)
Registers the specified consumer with the LogManager.
Definition: LogManager.cpp:271
void COGSFOUNDATION_API logFileLineArgs(const char *file, const int line, const char *source, const Category category, uint32_t errorNumber, const char *fmt, va_list args)
Log the given formatted string with argument list and file/line information.
Definition: LogManager.cpp:330
constexpr Log getLogger(const char(&name)[LEN]) noexcept
Definition: LogManager.h:181
void(const char *message, const char *source, int category) LoggerCallback
Definition of logging callback.
Definition: LogManager.h:22
Category COGSFOUNDATION_API parseCategoryString(const StringView category)
Utility function that takes a loglevel name as a string and returns the corresponding log level enum ...
Definition: LogManager.cpp:290
void COGSFOUNDATION_API logFileLine(const char *file, const int line, const char *source, const Category category, uint32_t errorNumber, _Printf_format_string_ const char *fmt,...) VALIDATE_ARGS(6)
Logs the given formatted string (using printf formatting rules) with file/line information and source...
Definition: LogManager.cpp:322
bool COGSFOUNDATION_API isErrorGroup(uint32_t errorNumber, ErrorGroup group)
Tests whether the specified error number is from the given group.
Definition: LogManager.cpp:302
void COGSFOUNDATION_API updateLoggerCategory(Category category)
Definition: LogManager.cpp:219
void COGSFOUNDATION_API setLoggerCategory(Category category)
Sets the default category level for loggers created after this call.
Definition: LogManager.cpp:215
ErrorGroup
ErrorGroup values define the top 16-bits of module specific error numbers.
Definition: LogManager.h:48
@ NvidiaNvEnc
Error values from NvEnc are in this group.
Definition: LogManager.h:79
@ FoundationNetwork
Definition: LogManager.h:55
@ FirstCoreExtension
Definition: LogManager.h:70
@ FirstFoundation
Definition: LogManager.h:52
@ FirstTerrain
Definition: LogManager.h:67
@ FirstRendering
Definition: LogManager.h:58
@ FirstCore
Definition: LogManager.h:61
@ Unspecified
The default error number for legacy logger usage.
Definition: LogManager.h:49
@ NvidiaCUDA
CUDA errors are wrapped in this group.
Definition: LogManager.h:78
@ FirstExternalExtension
Definition: LogManager.h:74
@ FoundationIO
Definition: LogManager.h:53
@ LibSRT
LibSRT doesn't define error numbers, so all SRT errors will be assigned this value.
Definition: LogManager.h:80
@ FirstDesktop
Definition: LogManager.h:64
@ FoundationModule
Definition: LogManager.h:54
@ FirstThirdParty
Definition: LogManager.h:77
@ FirstApplication
Definition: LogManager.h:83
void(const char *file, int line, const char *message, const char *source, int category) FileLineLoggerCallback
Definition of logging callback including file and line information.
Definition: LogManager.h:25
void COGSFOUNDATION_API logArgs(const char *source, const Category category, uint32_t errorNumber, const char *fmt, va_list args)
Log the given formatted string with argument list.
Definition: LogManager.cpp:318
Category
Logging categories used to filter log messages.
Definition: LogManager.h:31
void COGSFOUNDATION_API log(const char *message, const char *source, const Category category, uint32_t errorNumber)
Logs the given message with source and category.
Definition: LogManager.cpp:306
void updateMinimumCategory()
Internal.
Definition: LogManager.cpp:232
void COGSFOUNDATION_API unregisterConsumer(Consumer *consumer)
Removes the specified consumer from the LogManager.
Definition: LogManager.cpp:277
Main Cogs namespace.
Definition: MortonCode.h:5