@@ -199,35 +199,35 @@ void Log::Logger::WriteFloor()
|
|||||||
void Log::Logger::ProcessLogMessage(LogType type, const StringView& msg, fmt_flax::memory_buffer& w)
|
void Log::Logger::ProcessLogMessage(LogType type, const StringView& msg, fmt_flax::memory_buffer& w)
|
||||||
{
|
{
|
||||||
const TimeSpan time = DateTime::Now() - LogStartTime;
|
const TimeSpan time = DateTime::Now() - LogStartTime;
|
||||||
|
const int32 msgLength = msg.Length();
|
||||||
|
|
||||||
fmt_flax::format(w, TEXT("[ {0} ]: [{1}] "), *time.ToString('a'), ToString(type));
|
fmt_flax::format(w, TEXT("[ {0} ]: [{1}] "), *time.ToString('a'), ToString(type));
|
||||||
|
|
||||||
// On Windows convert all '\n' into '\r\n'
|
// On Windows convert all '\n' into '\r\n'
|
||||||
#if PLATFORM_WINDOWS
|
#if PLATFORM_WINDOWS
|
||||||
const int32 msgLength = msg.Length();
|
bool hasWindowsNewLine = false;
|
||||||
if (msgLength > 1)
|
for (int32 i = 1; i < msgLength && !hasWindowsNewLine; i++)
|
||||||
|
hasWindowsNewLine |= msg.Get()[i - 1] != '\r' && msg.Get()[i] == '\n';
|
||||||
|
if (hasWindowsNewLine)
|
||||||
{
|
{
|
||||||
MemoryWriteStream msgStream(msgLength * sizeof(Char));
|
MemoryWriteStream msgStream(msgLength * sizeof(Char));
|
||||||
msgStream.WriteChar(msg[0]);
|
msgStream.WriteChar(msg.Get()[0]);
|
||||||
for (int32 i = 1; i < msgLength; i++)
|
for (int32 i = 1; i < msgLength; i++)
|
||||||
{
|
{
|
||||||
if (msg[i - 1] != '\r' && msg[i] == '\n')
|
if (msg.Get()[i - 1] != '\r' && msg.Get()[i] == '\n')
|
||||||
msgStream.WriteChar(TEXT('\r'));
|
msgStream.WriteChar(TEXT('\r'));
|
||||||
msgStream.WriteChar(msg[i]);
|
msgStream.WriteChar(msg.Get()[i]);
|
||||||
}
|
}
|
||||||
msgStream.WriteChar(msg[msgLength]);
|
|
||||||
msgStream.WriteChar(TEXT('\0'));
|
msgStream.WriteChar(TEXT('\0'));
|
||||||
fmt_flax::format(w, TEXT("{}"), (const Char*)msgStream.GetHandle());
|
w.append((const Char*)msgStream.GetHandle(), (const Char*)msgStream.GetHandle() + msgStream.GetPosition());
|
||||||
//w.append(msgStream.GetHandle(), msgStream.GetHandle() + msgStream.GetPosition());
|
//fmt_flax::format(w, TEXT("{}"), (const Char*)msgStream.GetHandle());
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
//w.append(msg.Get(), msg.Get() + msg.Length());
|
|
||||||
fmt_flax::format(w, TEXT("{}"), msg);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
fmt_flax::format(w, TEXT("{}"), msg);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Output raw message to the log
|
||||||
|
w.append(msg.Get(), msg.Get() + msg.Length());
|
||||||
|
//fmt_flax::format(w, TEXT("{}"), msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Log::Logger::Write(LogType type, const StringView& msg)
|
void Log::Logger::Write(LogType type, const StringView& msg)
|
||||||
|
|||||||
Reference in New Issue
Block a user