aboutsummaryrefslogtreecommitdiff
path: root/zenserver/projectstore.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-09-15 11:27:48 +0200
committerStefan Boberg <[email protected]>2021-09-15 11:27:48 +0200
commit2b9bed6635d95e15847c4d9b602e34d90e277d14 (patch)
tree66fb191150ccbf9f56315a716abd23b25cc1d401 /zenserver/projectstore.cpp
parentxmake: added zenhttp dependency to make zen CLI tool buld (diff)
downloadzen-2b9bed6635d95e15847c4d9b602e34d90e277d14.tar.xz
zen-2b9bed6635d95e15847c4d9b602e34d90e277d14.zip
Changed logging implementation
* Code should no longer directly `#include spdlog/spdlog.h`, instead use `#include <zencore/logging.h>` * Instead of explicit calls to `spdlog::info(...)` and such please use the logging macros defined in `zencore/logging.h`. I.e `ZEN_INFO`, `ZEN_DEBUG`, `ZEN_TRACE`, `ZEN_ERROR`, `ZEN_CRITITCAL` * The macros will pick up the "most local" logger via a `Log()` call to retrieve a logger instance. To override the default logger in a class please implement your own `Log()` function
Diffstat (limited to 'zenserver/projectstore.cpp')
-rw-r--r--zenserver/projectstore.cpp104
1 files changed, 52 insertions, 52 deletions
diff --git a/zenserver/projectstore.cpp b/zenserver/projectstore.cpp
index 824dab090..79cd250dc 100644
--- a/zenserver/projectstore.cpp
+++ b/zenserver/projectstore.cpp
@@ -64,7 +64,7 @@ struct ProjectStore::OplogStorage : public RefCounted
~OplogStorage()
{
- Log().info("closing oplog storage at {}", m_OplogStoragePath);
+ ZEN_INFO("closing oplog storage at {}", m_OplogStoragePath);
Flush();
#if USE_ROCKSDB
@@ -80,7 +80,7 @@ struct ProjectStore::OplogStorage : public RefCounted
if (!Status.ok())
{
- Log().warn("db close error reported for '{}' : '{}'", m_OplogStoragePath, Status.getState());
+ ZEN_WARN("db close error reported for '{}' : '{}'", m_OplogStoragePath, Status.getState());
}
}
#endif
@@ -96,7 +96,7 @@ struct ProjectStore::OplogStorage : public RefCounted
void Open(bool IsCreate)
{
- Log().info("initializing oplog storage at '{}'", m_OplogStoragePath);
+ ZEN_INFO("initializing oplog storage at '{}'", m_OplogStoragePath);
if (IsCreate)
{
@@ -116,7 +116,7 @@ struct ProjectStore::OplogStorage : public RefCounted
{
std::string RocksdbPath = WideToUtf8((m_OplogStoragePath / "ops.rdb").native().c_str());
- Log().debug("opening rocksdb db at '{}'", RocksdbPath);
+ ZEN_DEBUG("opening rocksdb db at '{}'", RocksdbPath);
rocksdb::DB* Db;
rocksdb::DBOptions Options;
@@ -161,7 +161,7 @@ struct ProjectStore::OplogStorage : public RefCounted
{
// This could use memory mapping or do something clever but for now it just reads the file sequentially
- spdlog::info("replaying log for '{}'", m_OplogStoragePath);
+ ZEN_INFO("replaying log for '{}'", m_OplogStoragePath);
Stopwatch Timer;
@@ -177,7 +177,7 @@ struct ProjectStore::OplogStorage : public RefCounted
if (OpCoreHash != LogEntry.OpCoreHash)
{
- Log().warn("skipping oplog entry with bad checksum!");
+ ZEN_WARN("skipping oplog entry with bad checksum!");
return;
}
@@ -190,10 +190,10 @@ struct ProjectStore::OplogStorage : public RefCounted
Handler(Op, LogEntry);
});
- spdlog::info("Oplog replay completed in {} - Max LSN# {}, Next offset: {}",
- NiceTimeSpanMs(Timer.getElapsedTimeMs()),
- m_MaxLsn,
- m_NextOpsOffset);
+ ZEN_INFO("Oplog replay completed in {} - Max LSN# {}, Next offset: {}",
+ NiceTimeSpanMs(Timer.getElapsedTimeMs()),
+ m_MaxLsn,
+ m_NextOpsOffset);
}
void ReplayLog(const std::vector<OplogEntryAddress>& Entries, std::function<void(CbObject)>&& Handler)
@@ -464,7 +464,7 @@ ProjectStore::Oplog::RegisterOplogEntry(CbObject Core, const OplogEntry& OpEntry
AddChunkMapping(PackageId, PackageHash);
- Log().debug("package data {} -> {}", PackageId, PackageHash);
+ ZEN_DEBUG("package data {} -> {}", PackageId, PackageHash);
}
for (CbFieldView& Entry : Core["bulkdata"sv])
@@ -476,7 +476,7 @@ ProjectStore::Oplog::RegisterOplogEntry(CbObject Core, const OplogEntry& OpEntry
AddChunkMapping(BulkDataId, BulkDataHash);
- Log().debug("bulkdata {} -> {}", BulkDataId, BulkDataHash);
+ ZEN_DEBUG("bulkdata {} -> {}", BulkDataId, BulkDataHash);
}
if (Core["files"sv])
@@ -498,11 +498,11 @@ ProjectStore::Oplog::RegisterOplogEntry(CbObject Core, const OplogEntry& OpEntry
}
else
{
- Log().warn("invalid file");
+ ZEN_WARN("invalid file");
}
}
- Log().debug("added {} file(s) in {}", FileCount, NiceTimeSpanMs(Timer.getElapsedTimeMs()));
+ ZEN_DEBUG("added {} file(s) in {}", FileCount, NiceTimeSpanMs(Timer.getElapsedTimeMs()));
}
for (CbFieldView& Entry : Core["meta"sv])
@@ -514,7 +514,7 @@ ProjectStore::Oplog::RegisterOplogEntry(CbObject Core, const OplogEntry& OpEntry
AddMetaMapping(MetaId, MetaDataHash);
- Log().debug("meta data ({}) {} -> {}", NameString, MetaId, MetaDataHash);
+ ZEN_DEBUG("meta data ({}) {} -> {}", NameString, MetaId, MetaDataHash);
}
m_OpAddressMap.emplace(OpEntry.OpLsn, OplogEntryAddress{.Offset = OpEntry.OpCoreOffset, .Size = OpEntry.OpCoreSize});
@@ -577,10 +577,10 @@ ProjectStore::Oplog::AppendNewOplogEntry(CbPackage OpPackage)
const uint32_t EntryId = RegisterOplogEntry(Core, OpEntry, kUpdateNewEntry);
- Log().debug("oplog entry #{} attachments: {}B new, {}B total",
- EntryId,
- zen::NiceBytes(NewAttachmentBytes),
- zen::NiceBytes(AttachmentBytes));
+ ZEN_DEBUG("oplog entry #{} attachments: {} new, {} total",
+ EntryId,
+ zen::NiceBytes(NewAttachmentBytes),
+ zen::NiceBytes(AttachmentBytes));
return EntryId;
}
@@ -609,7 +609,7 @@ ProjectStore::Project::Read()
{
std::filesystem::path ProjectStateFilePath = m_OplogStoragePath / "Project.zcb";
- spdlog::info("reading config for project '{}' from {}", Identifier, ProjectStateFilePath);
+ ZEN_INFO("reading config for project '{}' from {}", Identifier, ProjectStateFilePath);
BasicFile Blob;
Blob.Open(ProjectStateFilePath, false);
@@ -628,7 +628,7 @@ ProjectStore::Project::Read()
}
else
{
- spdlog::error("validation error {} hit for '{}'", int(ValidationError), ProjectStateFilePath);
+ ZEN_ERROR("validation error {} hit for '{}'", int(ValidationError), ProjectStateFilePath);
}
}
@@ -650,7 +650,7 @@ ProjectStore::Project::Write()
std::filesystem::path ProjectStateFilePath = m_OplogStoragePath / "Project.zcb";
- spdlog::info("persisting config for project '{}' to {}", Identifier, ProjectStateFilePath);
+ ZEN_INFO("persisting config for project '{}' to {}", Identifier, ProjectStateFilePath);
BasicFile Blob;
Blob.Open(ProjectStateFilePath, true);
@@ -727,7 +727,7 @@ ProjectStore::Project::OpenOplog(std::string_view OplogId)
}
catch (std::exception& ex)
{
- spdlog::error("failed to open oplog '{}' @ '{}': {}", OplogId, OplogBasePath, ex.what());
+ ZEN_ERROR("failed to open oplog '{}' @ '{}': {}", OplogId, OplogBasePath, ex.what());
m_Oplogs.erase(std::string{OplogId});
}
@@ -787,13 +787,13 @@ ProjectStore::ProjectStore(CasStore& Store, std::filesystem::path BasePath)
, m_ProjectBasePath(BasePath)
, m_CasStore(Store)
{
- m_Log.info("initializing project store at '{}'", BasePath);
+ ZEN_INFO("initializing project store at '{}'", BasePath);
// m_Log.set_level(spdlog::level::debug);
}
ProjectStore::~ProjectStore()
{
- m_Log.info("closing project store ('{}')", m_ProjectBasePath);
+ ZEN_INFO("closing project store ('{}')", m_ProjectBasePath);
}
std::filesystem::path
@@ -837,7 +837,7 @@ ProjectStore::OpenProject(std::string_view ProjectId)
{
try
{
- Log().info("opening project {} @ {}", ProjectId, ProjectBasePath);
+ ZEN_INFO("opening project {} @ {}", ProjectId, ProjectBasePath);
ProjectStore::Project& Prj = m_Projects.try_emplace(std::string{ProjectId}, this, m_CasStore, ProjectBasePath).first->second;
Prj.Identifier = ProjectId;
@@ -846,7 +846,7 @@ ProjectStore::OpenProject(std::string_view ProjectId)
}
catch (std::exception& e)
{
- Log().warn("failed to open {} @ {} ({})", ProjectId, ProjectBasePath, e.what());
+ ZEN_WARN("failed to open {} @ {} ({})", ProjectId, ProjectBasePath, e.what());
m_Projects.erase(std::string{ProjectId});
}
}
@@ -878,7 +878,7 @@ ProjectStore::DeleteProject(std::string_view ProjectId)
{
std::filesystem::path ProjectBasePath = BasePathForProject(ProjectId);
- Log().info("deleting project {} @ {}", ProjectId, ProjectBasePath);
+ ZEN_INFO("deleting project {} @ {}", ProjectId, ProjectBasePath);
m_Projects.erase(std::string{ProjectId});
@@ -1161,7 +1161,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
}
}
- m_Log.debug("chunk - {} / {} / {}", ProjectId, OplogId, ChunkId);
+ ZEN_DEBUG("chunk - {} / {} / {}", ProjectId, OplogId, ChunkId);
ProjectStore::Oplog* FoundLog = m_ProjectStore->OpenProjectOplog(ProjectId, OplogId);
@@ -1254,7 +1254,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
}
}
- m_Log.debug("oplog hash - {} / {} / {}", ProjectId, OplogId, HashString);
+ ZEN_DEBUG("oplog hash - {} / {} / {}", ProjectId, OplogId, HashString);
IoHash Hash = IoHash::FromHexString(HashString);
IoBuffer Value = m_CasStore.FindChunk(Hash);
@@ -1315,7 +1315,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
if (!m_CasStore.FindChunk(FileHash))
{
- spdlog::debug("NEED: {}", FileHash);
+ ZEN_DEBUG("NEED: {}", FileHash);
NeedList.push_back(FileHash);
}
@@ -1363,7 +1363,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
return HttpReq.WriteResponse(HttpResponseCode::NotFound);
}
- ProjectStore::Oplog& Log = *FoundLog;
+ ProjectStore::Oplog& Oplog = *FoundLog;
IoBuffer Payload = HttpReq.ReadPayload();
@@ -1387,7 +1387,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
AttachmentId = Hash;
}
- std::filesystem::path AttachmentPath = Log.TempPath() / AttachmentId.ToHexString();
+ std::filesystem::path AttachmentPath = Oplog.TempPath() / AttachmentId.ToHexString();
if (IoBuffer Data = m_CasStore.FindChunk(Hash))
{
@@ -1410,7 +1410,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
if (!legacy::TryLoadCbPackage(Package, Payload, &UniqueBuffer::Alloc, &Resolver))
{
- m_Log.error("Received malformed package!");
+ ZEN_ERROR("Received malformed package!");
return HttpReq.WriteResponse(HttpResponseCode::BadRequest, HttpContentType::kText, "Invalid package");
}
@@ -1431,14 +1431,14 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
// Write core to oplog
- const uint32_t OpLsn = Log.AppendNewOplogEntry(Package);
+ const uint32_t OpLsn = Oplog.AppendNewOplogEntry(Package);
if (OpLsn == ProjectStore::Oplog::kInvalidOp)
{
return HttpReq.WriteResponse(HttpResponseCode::BadRequest);
}
- m_Log.info("new op #{:4} - {}/{} ({:>6}) {}", OpLsn, ProjectId, OplogId, NiceBytes(Payload.Size()), Core["key"sv].AsString());
+ ZEN_INFO("new op #{:4} - {}/{} ({:>6}) {}", OpLsn, ProjectId, OplogId, NiceBytes(Payload.Size()), Core["key"sv].AsString());
HttpReq.WriteResponse(HttpResponseCode::Created);
},
@@ -1508,7 +1508,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
return Req.ServerRequest().WriteResponse(HttpResponseCode::InternalServerError);
}
- m_Log.info("established oplog {} / {}", ProjectId, OplogId);
+ ZEN_INFO("established oplog {} / {}", ProjectId, OplogId);
return Req.ServerRequest().WriteResponse(HttpResponseCode::Created);
}
@@ -1522,7 +1522,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
case HttpVerb::kDelete:
{
- spdlog::info("deleting oplog {}/{}", ProjectId, OplogId);
+ ZEN_INFO("deleting oplog {}/{}", ProjectId, OplogId);
ProjectIt->DeleteOplog(OplogId);
@@ -1601,12 +1601,12 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
const std::filesystem::path BasePath = m_ProjectStore->BasePath() / ProjectId;
m_ProjectStore->NewProject(BasePath, ProjectId, Root, EngineRoot, ProjectRoot);
- m_Log.info("established project - {} (id: '{}', roots: '{}', '{}', '{}')",
- ProjectId,
- Id,
- Root,
- EngineRoot,
- ProjectRoot);
+ ZEN_INFO("established project - {} (id: '{}', roots: '{}', '{}', '{}')",
+ ProjectId,
+ Id,
+ Root,
+ EngineRoot,
+ ProjectRoot);
Req.ServerRequest().WriteResponse(HttpResponseCode::Created);
}
@@ -1670,7 +1670,7 @@ HttpProjectService::HandleRequest(HttpServerRequest& Request)
{
if (m_Router.HandleRequest(Request) == false)
{
- m_Log.warn("No route found for {0}", Request.RelativeUri());
+ ZEN_WARN("No route found for {0}", Request.RelativeUri());
}
}
@@ -1736,7 +1736,7 @@ struct LocalProjectService::LocalProjectImpl
}
catch (std::exception& ex)
{
- spdlog::error("exception caught in pipe project service loop: {}", ex.what());
+ ZEN_ERROR("exception caught in pipe project service loop: {}", ex.what());
}
m_ShutdownLatch.count_down();
@@ -1821,7 +1821,7 @@ private:
if (hPipe == INVALID_HANDLE_VALUE)
{
- spdlog::warn("failed while creating named pipe {}", PipeName.c_str());
+ ZEN_WARN("failed while creating named pipe {}", PipeName.c_str());
// TODO: error - how to best handle?
}
@@ -1868,13 +1868,13 @@ private:
return;
}
- spdlog::warn("pipe connection error: {}", Ec.message());
+ ZEN_WARN("pipe connection error: {}", Ec.message());
// TODO: should disconnect and issue a new connect
return;
}
- spdlog::debug("pipe connection established");
+ ZEN_DEBUG("pipe connection established");
IssueRead();
}
@@ -1896,13 +1896,13 @@ private:
return;
}
- spdlog::warn("pipe read error: {}", Ec.message());
+ ZEN_WARN("pipe read error: {}", Ec.message());
// TODO: should disconnect and issue a new connect
return;
}
- spdlog::debug("received message: {} bytes", Bytes);
+ ZEN_DEBUG("received message: {} bytes", Bytes);
// TODO: Actually process request
@@ -1924,7 +1924,7 @@ private:
return;
}
- spdlog::warn("pipe write error: {}", Ec.message());
+ ZEN_WARN("pipe write error: {}", Ec.message());
// TODO: should disconnect and issue a new connect
return;