KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
FLogWriter.cpp
이 파일의 문서화 페이지로 가기
1
5#include "FLogWriter.h"
6
7#include "HAL/PlatformFileManager.h"
8#include "Misc/Paths.h"
9#include "Misc/DateTime.h"
10#include "GenericPlatform/GenericPlatformProcess.h"
11
12
14{
15 static FLogWriter Instance;
16 return Instance;
17}
18
20{
21 if (!FPlatformProcess::SupportsMultithreading())
22 {
23 return;
24 }
25
26 const FString TimeString = FDateTime::Now().ToString(TEXT("%Y-%m-%d_%H-%M-%S"));
27 const FString LogFileName = FString::Printf(TEXT("CoffeeLog-%s.log"), *TimeString);
28 const FString LogFilePath = FPaths::ProjectLogDir() / LogFileName;
29
30 LogFile = IFileManager::Get().CreateFileWriter(*LogFilePath, FILEWRITE_Append);
31
32 if (!LogFile)
33 {
34 UE_LOG(LogTemp, Error, TEXT("Failed to open log file at: %s"), *LogFilePath);
35 }
36}
37
39{
40 if (LogFile)
41 {
42 LogFile->Close();
43 delete LogFile;
44 LogFile = nullptr;
45 }
46}
47
48void FLogWriter::WriteLog(const FString& Message)
49{
50 if (!LogFile)
51 {
52 return;
53 }
54
55 const FString Timestamp = FDateTime::Now().ToString(TEXT("%Y-%m-%d %H:%M:%S"));
56 const FString LogLine = FString::Printf(TEXT("[%s] %s\n"), *Timestamp, *Message);
57
58 FTCHARToUTF8 Converter(*LogLine);
59 LogFile->Serialize(const_cast<void*>(static_cast<const void*>(Converter.Get())), Converter.Length());
60 LogFile->Flush(); // TODO: Optionalize or buffer later
61}
FArchive 클래스를 선언합니다.
void WriteLog(const FString &Message)
FArchive * LogFile
Definition FLogWriter.h:22
static FLogWriter & Get()