17#if __has_include(<spdlog/logger.h>)
18#define CE_HAS_LOGGING 1
21#if defined(CE_HAS_LOGGING)
22#include <spdlog/logger.h>
23#include <spdlog/sinks/base_sink.h>
25#include <fmt/ostream.h>
32 mutable spdlog::logger
logger;
37 Logger(
const char* name)
noexcept;
48 template<
typename... Args>
void trace(fmt::format_string<Args...>
fmt,
const Args&... args)
const {
49#if !defined(CE_LOGGER_NO_TRACE)
58 template<
typename... Args>
void debug(fmt::format_string<Args...>
fmt,
const Args&... args)
const {
59#if !defined(CE_LOGGER_NO_DEBUG)
68 template<
typename... Args>
void info(fmt::format_string<Args...>
fmt,
const Args&... args)
const {
logger.info(
fmt, args...); }
74 template<
typename... Args>
void warn(fmt::format_string<Args...>
fmt,
const Args&... args)
const {
logger.warn(
fmt, args...); }
80 template<
typename... Args>
void error(fmt::format_string<Args...>
fmt,
const Args&... args)
const {
logger.error(
fmt, args...); }
86 template<
typename... Args>
void critical(fmt::format_string<Args...>
fmt,
const Args&... args)
const {
logger.critical(
fmt, args...); }
93 template<
typename... Args>
void log(spdlog::level::level_enum
level, fmt::format_string<Args...>
fmt,
const Args&... args)
const {
100 void flush()
const {
logger.flush(); }
110 template<
typename... Args>
void trace(fmt::format_string<Args...>
fmt,
const Args&... args) {
gDefaultLogger().trace(
fmt, args...); }
116 template<
typename... Args>
void debug(fmt::format_string<Args...>
fmt,
const Args&... args) {
gDefaultLogger().debug(
fmt, args...); }
122 template<
typename... Args>
constexpr void info(fmt::format_string<Args...>
fmt,
const Args&... args) {
gDefaultLogger().info(
fmt, args...); }
128 template<
typename... Args>
void warn(fmt::format_string<Args...>
fmt,
const Args&... args) {
gDefaultLogger().warn(
fmt, args...); }
134 template<
typename... Args>
void error(fmt::format_string<Args...>
fmt,
const Args&... args) {
gDefaultLogger().error(
fmt, args...); }
140 template<
typename... Args>
void critical(fmt::format_string<Args...>
fmt,
const Args&... args) {
gDefaultLogger().critical(
fmt, args...); }
142 class BufferedSink :
public spdlog::sinks::base_sink<Mutex> {
154 void sink_it_(
const spdlog::details::log_msg&
msg)
final;
Definition Application.hpp:19
std::shared_ptr< T > SPtr
SPtr is a smart pointer that retains shared ownership of an object through a pointer.
Definition SmartPtr.hpp:37
BasicString< char > String
Narrow string used for handling narrow encoded text in UTF-8.
Definition String.hpp:163
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25