mirror of
https://github.com/roflmuffin/CounterStrikeSharp.git
synced 2025-12-05 23:58:24 -08:00
feat: add spdlog
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -5,3 +5,6 @@
|
||||
[submodule "libraries/metamod-source"]
|
||||
path = libraries/metamod-source
|
||||
url = https://github.com/alliedmodders/metamod-source
|
||||
[submodule "libraries/spdlog"]
|
||||
path = libraries/spdlog
|
||||
url = https://github.com/gabime/spdlog
|
||||
|
||||
@@ -4,6 +4,8 @@ Project(counterstrikesharp C CXX)
|
||||
|
||||
include("makefiles/shared.cmake")
|
||||
|
||||
add_subdirectory(libraries/spdlog)
|
||||
|
||||
SET(SOURCE_FILES
|
||||
src/sample_mm.cpp
|
||||
src/sample_mm.h
|
||||
@@ -21,6 +23,8 @@ SET(SOURCE_FILES
|
||||
src/core/utils.h
|
||||
src/core/globals.h
|
||||
src/core/globals.cpp
|
||||
src/core/log.h
|
||||
src/core/log.cpp
|
||||
)
|
||||
|
||||
|
||||
|
||||
1
libraries/spdlog
Submodule
1
libraries/spdlog
Submodule
Submodule libraries/spdlog added at 91807c2e71
@@ -26,4 +26,5 @@ SET(
|
||||
${SOURCESDK_LIB}/linux64/tier1.a
|
||||
${SOURCESDK_LIB}/linux64/interfaces.a
|
||||
${SOURCESDK_LIB}/linux64/mathlib.a
|
||||
spdlog
|
||||
)
|
||||
@@ -3,6 +3,8 @@ Set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING
|
||||
FORCE
|
||||
)
|
||||
|
||||
Set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
|
||||
Set(SOURCESDK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libraries/hl2sdk-cs2)
|
||||
Set(METAMOD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libraries/metamod-source)
|
||||
|
||||
@@ -24,9 +26,8 @@ include_directories(
|
||||
${SOURCESDK}/public/game/server
|
||||
${METAMOD_DIR}/core
|
||||
${METAMOD_DIR}/core/sourcehook
|
||||
libraries/spdlog/include
|
||||
libraries
|
||||
)
|
||||
|
||||
SET(ASMJIT_STATIC 1)
|
||||
|
||||
Project(counterstrikesharp C CXX)
|
||||
|
||||
30
src/core/log.cpp
Normal file
30
src/core/log.cpp
Normal file
@@ -0,0 +1,30 @@
|
||||
#include "core/log.h"
|
||||
|
||||
#include <spdlog/sinks/basic_file_sink.h>
|
||||
#include <spdlog/sinks/stdout_color_sinks.h>
|
||||
|
||||
namespace counterstrikesharp
|
||||
{
|
||||
std::shared_ptr<spdlog::logger> Log::m_core_logger;
|
||||
|
||||
void Log::Init()
|
||||
{
|
||||
std::vector<spdlog::sink_ptr> logSinks;
|
||||
logSinks.emplace_back(std::make_shared<spdlog::sinks::ansicolor_stdout_sink_mt>());
|
||||
logSinks.emplace_back(std::make_shared<spdlog::sinks::basic_file_sink_mt>("counterstrikesharp.log", true));
|
||||
|
||||
logSinks[0]->set_pattern("%^[%T.%e] %n: %v%$");
|
||||
logSinks[1]->set_pattern("[%T.%e] [%l] %n: %v");
|
||||
|
||||
m_core_logger = std::make_shared<spdlog::logger>("CSSharp", begin(logSinks), end(logSinks));
|
||||
spdlog::register_logger(m_core_logger);
|
||||
m_core_logger->set_level(spdlog::level::info);
|
||||
m_core_logger->flush_on(spdlog::level::info);
|
||||
}
|
||||
|
||||
void Log::Close()
|
||||
{
|
||||
spdlog::drop("CSSharp");
|
||||
m_core_logger = nullptr;
|
||||
}
|
||||
} // namespace counterstrikesharp
|
||||
31
src/core/log.h
Normal file
31
src/core/log.h
Normal file
@@ -0,0 +1,31 @@
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <spdlog/fmt/ostr.h>
|
||||
#include <spdlog/spdlog.h>
|
||||
|
||||
namespace counterstrikesharp
|
||||
{
|
||||
class Log
|
||||
{
|
||||
public:
|
||||
static void Init();
|
||||
static void Close();
|
||||
|
||||
static std::shared_ptr<spdlog::logger> &GetCoreLogger()
|
||||
{
|
||||
return m_core_logger;
|
||||
}
|
||||
|
||||
private:
|
||||
static std::shared_ptr<spdlog::logger> m_core_logger;
|
||||
};
|
||||
} // namespace counterstrikesharp
|
||||
|
||||
#define CSSHARP_CORE_TRACE(...) ::counterstrikesharp::Log::GetCoreLogger()->trace(__VA_ARGS__)
|
||||
#define CSSHARP_CORE_DEBUG(...) _ ::counterstrikesharp::Log::GetCoreLogger()->debug(__VA_ARGS__)
|
||||
#define CSSHARP_CORE_INFO(...) ::counterstrikesharp::Log::GetCoreLogger()->info(__VA_ARGS__)
|
||||
#define CSSHARP_CORE_WARN(...) ::counterstrikesharp::Log::GetCoreLogger()->warn(__VA_ARGS__)
|
||||
#define CSSHARP_CORE_ERROR(...) ::counterstrikesharp::Log::GetCoreLogger()->error(__VA_ARGS__)
|
||||
#define CSSHARP_CORE_CRITICAL(...) ::counterstrikesharp::Log::GetCoreLogger()->critical(__VA_ARGS__)
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <cstdio>
|
||||
|
||||
#include "core/log.h"
|
||||
#include "core/utils.h"
|
||||
#include "iserver.h"
|
||||
|
||||
@@ -58,8 +59,8 @@ ConVar sample_cvar("sample_cvar", "42", 0);
|
||||
|
||||
CON_COMMAND_F(sample_command, "Sample command", FCVAR_NONE)
|
||||
{
|
||||
META_CONPRINTF("Sample command called by %d. Command: %s\n", context.GetPlayerSlot(),
|
||||
utils::PluginDirectory().c_str());
|
||||
CSSHARP_CORE_INFO("Sample command called by {0}. Command: {1}", context.GetPlayerSlot().Get(),
|
||||
utils::PluginDirectory().c_str());
|
||||
}
|
||||
|
||||
PLUGIN_EXPOSE(SamplePlugin, g_SamplePlugin);
|
||||
@@ -67,7 +68,9 @@ bool SamplePlugin::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen,
|
||||
{
|
||||
PLUGIN_SAVEVARS();
|
||||
|
||||
META_CONPRINTF("ISMM: %d", ismm);
|
||||
Log::Init();
|
||||
|
||||
CSSHARP_CORE_INFO("Initializing");
|
||||
|
||||
GET_V_IFACE_CURRENT(GetEngineFactory, globals::engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER);
|
||||
GET_V_IFACE_CURRENT(GetEngineFactory, globals::cvars, ICvar, CVAR_INTERFACE_VERSION);
|
||||
@@ -77,7 +80,7 @@ bool SamplePlugin::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen,
|
||||
GET_V_IFACE_ANY(GetEngineFactory, globals::networkServerService, INetworkServerService,
|
||||
NETWORKSERVERSERVICE_INTERFACE_VERSION);
|
||||
|
||||
META_CONPRINTF("Starting plugin.\n");
|
||||
CSSHARP_CORE_INFO("Globals loaded.");
|
||||
|
||||
SH_ADD_HOOK_MEMFUNC(IServerGameDLL, GameFrame, globals::server, this, &SamplePlugin::Hook_GameFrame, true);
|
||||
SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientActive, globals::serverGameClients, this,
|
||||
@@ -95,7 +98,7 @@ bool SamplePlugin::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen,
|
||||
SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientCommand, globals::serverGameClients, this,
|
||||
&SamplePlugin::Hook_ClientCommand, false);
|
||||
|
||||
META_CONPRINTF("All hooks started!\n");
|
||||
CSSHARP_CORE_INFO("Hooks added.");
|
||||
|
||||
// Used by Metamod Console Commands
|
||||
g_pCVar = globals::cvars;
|
||||
|
||||
Reference in New Issue
Block a user