1#ifndef BOMBERMAN_UTIL_LOG_H
2#define BOMBERMAN_UTIL_LOG_H
5#include <unordered_map>
6#include <spdlog/spdlog.h>
8#ifndef BOMBERMAN_DEFAULT_LOG_LEVEL
9#define BOMBERMAN_DEFAULT_LOG_LEVEL SPDLOG_LEVEL_INFO
20 spdlog::level::level_enum baseLevel =
static_cast<spdlog::level::level_enum
>(BOMBERMAN_DEFAULT_LOG_LEVEL);
21 std::string logFilePath;
22 std::unordered_map<std::string, spdlog::level::level_enum> channelLevels;
41 bool hasBaseLevelOverride,
42 spdlog::level::level_enum baseLevelOverride,
43 bool hasLogFileOverride,
44 const std::string& logFileOverride,
45 std::string& outError);
54 void init(spdlog::level::level_enum baseLevel =
static_cast<spdlog::level::level_enum
>(BOMBERMAN_DEFAULT_LOG_LEVEL),
const std::string& logFile =
"");
59 spdlog::logger*
game();
75#define LOG_CLIENT_TRACE(...) SPDLOG_LOGGER_TRACE(bomberman::log::client(), __VA_ARGS__)
76#define LOG_CLIENT_DEBUG(...) SPDLOG_LOGGER_DEBUG(bomberman::log::client(), __VA_ARGS__)
77#define LOG_CLIENT_INFO(...) SPDLOG_LOGGER_INFO(bomberman::log::client(), __VA_ARGS__)
78#define LOG_CLIENT_WARN(...) SPDLOG_LOGGER_WARN(bomberman::log::client(), __VA_ARGS__)
79#define LOG_CLIENT_ERROR(...) SPDLOG_LOGGER_ERROR(bomberman::log::client(), __VA_ARGS__)
82#define LOG_SERVER_TRACE(...) SPDLOG_LOGGER_TRACE(bomberman::log::server(), __VA_ARGS__)
83#define LOG_SERVER_DEBUG(...) SPDLOG_LOGGER_DEBUG(bomberman::log::server(), __VA_ARGS__)
84#define LOG_SERVER_INFO(...) SPDLOG_LOGGER_INFO(bomberman::log::server(), __VA_ARGS__)
85#define LOG_SERVER_WARN(...) SPDLOG_LOGGER_WARN(bomberman::log::server(), __VA_ARGS__)
86#define LOG_SERVER_ERROR(...) SPDLOG_LOGGER_ERROR(bomberman::log::server(), __VA_ARGS__)
89#define LOG_GAME_TRACE(...) SPDLOG_LOGGER_TRACE(bomberman::log::game(), __VA_ARGS__)
90#define LOG_GAME_DEBUG(...) SPDLOG_LOGGER_DEBUG(bomberman::log::game(), __VA_ARGS__)
91#define LOG_GAME_INFO(...) SPDLOG_LOGGER_INFO(bomberman::log::game(), __VA_ARGS__)
92#define LOG_GAME_WARN(...) SPDLOG_LOGGER_WARN(bomberman::log::game(), __VA_ARGS__)
93#define LOG_GAME_ERROR(...) SPDLOG_LOGGER_ERROR(bomberman::log::game(), __VA_ARGS__)
96#define LOG_NET_CONN_TRACE(...) SPDLOG_LOGGER_TRACE(bomberman::log::netConn(), __VA_ARGS__)
97#define LOG_NET_CONN_DEBUG(...) SPDLOG_LOGGER_DEBUG(bomberman::log::netConn(), __VA_ARGS__)
98#define LOG_NET_CONN_INFO(...) SPDLOG_LOGGER_INFO(bomberman::log::netConn(), __VA_ARGS__)
99#define LOG_NET_CONN_WARN(...) SPDLOG_LOGGER_WARN(bomberman::log::netConn(), __VA_ARGS__)
100#define LOG_NET_CONN_ERROR(...) SPDLOG_LOGGER_ERROR(bomberman::log::netConn(), __VA_ARGS__)
102#define LOG_NET_PACKET_TRACE(...) SPDLOG_LOGGER_TRACE(bomberman::log::netPacket(), __VA_ARGS__)
103#define LOG_NET_PACKET_DEBUG(...) SPDLOG_LOGGER_DEBUG(bomberman::log::netPacket(), __VA_ARGS__)
104#define LOG_NET_PACKET_INFO(...) SPDLOG_LOGGER_INFO(bomberman::log::netPacket(), __VA_ARGS__)
105#define LOG_NET_PACKET_WARN(...) SPDLOG_LOGGER_WARN(bomberman::log::netPacket(), __VA_ARGS__)
106#define LOG_NET_PACKET_ERROR(...) SPDLOG_LOGGER_ERROR(bomberman::log::netPacket(), __VA_ARGS__)
108#define LOG_NET_PROTO_TRACE(...) SPDLOG_LOGGER_TRACE(bomberman::log::netProto(), __VA_ARGS__)
109#define LOG_NET_PROTO_DEBUG(...) SPDLOG_LOGGER_DEBUG(bomberman::log::netProto(), __VA_ARGS__)
110#define LOG_NET_PROTO_INFO(...) SPDLOG_LOGGER_INFO(bomberman::log::netProto(), __VA_ARGS__)
111#define LOG_NET_PROTO_WARN(...) SPDLOG_LOGGER_WARN(bomberman::log::netProto(), __VA_ARGS__)
112#define LOG_NET_PROTO_ERROR(...) SPDLOG_LOGGER_ERROR(bomberman::log::netProto(), __VA_ARGS__)
114#define LOG_NET_INPUT_TRACE(...) SPDLOG_LOGGER_TRACE(bomberman::log::netInput(), __VA_ARGS__)
115#define LOG_NET_INPUT_DEBUG(...) SPDLOG_LOGGER_DEBUG(bomberman::log::netInput(), __VA_ARGS__)
116#define LOG_NET_INPUT_INFO(...) SPDLOG_LOGGER_INFO(bomberman::log::netInput(), __VA_ARGS__)
117#define LOG_NET_INPUT_WARN(...) SPDLOG_LOGGER_WARN(bomberman::log::netInput(), __VA_ARGS__)
118#define LOG_NET_INPUT_ERROR(...) SPDLOG_LOGGER_ERROR(bomberman::log::netInput(), __VA_ARGS__)
120#define LOG_NET_SNAPSHOT_TRACE(...) SPDLOG_LOGGER_TRACE(bomberman::log::netSnapshot(), __VA_ARGS__)
121#define LOG_NET_SNAPSHOT_DEBUG(...) SPDLOG_LOGGER_DEBUG(bomberman::log::netSnapshot(), __VA_ARGS__)
122#define LOG_NET_SNAPSHOT_INFO(...) SPDLOG_LOGGER_INFO(bomberman::log::netSnapshot(), __VA_ARGS__)
123#define LOG_NET_SNAPSHOT_WARN(...) SPDLOG_LOGGER_WARN(bomberman::log::netSnapshot(), __VA_ARGS__)
124#define LOG_NET_SNAPSHOT_ERROR(...) SPDLOG_LOGGER_ERROR(bomberman::log::netSnapshot(), __VA_ARGS__)
126#define LOG_NET_DIAG_TRACE(...) SPDLOG_LOGGER_TRACE(bomberman::log::netDiag(), __VA_ARGS__)
127#define LOG_NET_DIAG_DEBUG(...) SPDLOG_LOGGER_DEBUG(bomberman::log::netDiag(), __VA_ARGS__)
128#define LOG_NET_DIAG_INFO(...) SPDLOG_LOGGER_INFO(bomberman::log::netDiag(), __VA_ARGS__)
129#define LOG_NET_DIAG_WARN(...) SPDLOG_LOGGER_WARN(bomberman::log::netDiag(), __VA_ARGS__)
130#define LOG_NET_DIAG_ERROR(...) SPDLOG_LOGGER_ERROR(bomberman::log::netDiag(), __VA_ARGS__)
Centralized logging interface for the project.
Definition Log.cpp:17
std::string defaultConfigFilePath()
Returns the default logging config path.
Definition Log.cpp:155
spdlog::logger * netDiag()
Diagnostics summaries and recorder lifecycle.
Definition Log.cpp:371
void init(const LogConfig &config)
Initializes all named loggers.
Definition Log.cpp:315
spdlog::logger * client()
Client bootstrap and top-level runtime.
Definition Log.cpp:363
spdlog::logger * game()
SDL/game runtime outside netcode semantics.
Definition Log.cpp:365
LogConfig makeDefaultConfig()
Builds the hardcoded default logging configuration.
Definition Log.cpp:148
spdlog::logger * server()
Dedicated-server lifecycle and round flow.
Definition Log.cpp:364
spdlog::logger * netConn()
Session lifecycle and lobby/match admission.
Definition Log.cpp:366
spdlog::logger * netPacket()
Raw transport queueing/dispatch detail.
Definition Log.cpp:367
spdlog::logger * netSnapshot()
Snapshot, correction, and gameplay-event transport.
Definition Log.cpp:370
spdlog::logger * netProto()
Protocol misuse and malformed payloads.
Definition Log.cpp:368
bool resolveConfig(LogConfig &outConfig, bool hasBaseLevelOverride, spdlog::level::level_enum baseLevelOverride, bool hasLogFileOverride, const std::string &logFileOverride, std::string &outError)
Resolves the final logging config from defaults, default file input, and CLI-style overrides.
Definition Log.cpp:289
spdlog::logger * netInput()
Authoritative input and prediction/replay anomalies.
Definition Log.cpp:369