Skip to content
Snippets Groups Projects
Commit 7c369b5b authored by mbellgardt's avatar mbellgardt
Browse files

Finish implementation of LogFileManager. Multiple streams can now point to the same file.

parent a33b116e
No related branches found
No related tags found
2 merge requests!16Develop,!6Feature/multiple streams per file
#include "LogFileManager.h"
LogFileStream* LogFileManager::GetLogFileStream(FString FilePath, FString FileName)
{
FString Full_Path = FPaths::Combine(FilePath, FileName);
if (Streams.Contains(Full_Path))
return Streams[Full_Path].Get();
else
Streams.Add(Full_Path, MakeUnique<LogFileStream>(FilePath, FileName));
return Streams[Full_Path].Get();
}
LogFileManager::LogFileManager()
{
}
LogFileManager::~LogFileManager()
{
}
#pragma once
#include "LogFileStream.h"
class LogFileManager
{
public:
LogFileStream* GetLogFileStream(FString FilePath, FString FileName);
private:
friend class UniversalLoggingImpl;
LogFileManager();
virtual ~LogFileManager();
private:
TMap<FString, TUniquePtr<LogFileStream>> Streams;
};
\ No newline at end of file
......@@ -152,7 +152,7 @@ void LogStreamImpl::Open()
FString File_Path = Filepath;
if(bPer_Session)
File_Path = FPaths::Combine(File_Path, UniLog.GetSessionIdentifier());
Log_File_Stream = new LogFileStream(File_Path, Filename); // this will not stay like this, as LogFileStreams will be managed by LogFileManager
Log_File_Stream = UniversalLoggingImpl::GetLogFileManager()->GetLogFileStream(File_Path, Filename); // this will not stay like this, as LogFileStreams will be managed by LogFileManager
Log_File_Stream->Open();
if (!Log_File_Stream->GetIsOpen())
{
......
......@@ -7,6 +7,8 @@
#include "Cluster/IDisplayClusterClusterManager.h"
#include "Misc/CommandLine.h"
LogFileManager UniversalLoggingImpl::Log_File_Manager = LogFileManager();
void UniversalLoggingImpl::StartupModule()
{
Streams.Add("", MakeUnique<LogStreamImpl>());
......@@ -174,4 +176,9 @@ FString UniversalLoggingImpl::GetNodeName()
return FString(TEXT("Localhost"));
}
LogFileManager* UniversalLoggingImpl::GetLogFileManager()
{
return &Log_File_Manager;
}
IMPLEMENT_MODULE(UniversalLoggingImpl, UniversalLogging)
......@@ -3,6 +3,7 @@
#include "LogStream.h"
#include "OnScreenLog.h"
#include "IUniversalLogging.h"
#include "LogFileManager.h"
#include "Engine/World.h"
......@@ -32,7 +33,10 @@ public:
static bool IsClusterMaster();
static FString GetNodeName();
static LogFileManager* GetLogFileManager();
private:
static LogFileManager Log_File_Manager;
TMap<FString, TUniquePtr<LogStreamImpl>> Streams;
FString Session_ID;
TBaseDelegate<void, UWorld*, const UWorld::InitializationValues> On_Post_World_Initialization_Delegate;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment