Skip to content
Permalink
Browse files
Enable UWP logging in release builds with FirefoxRealityLogStdout env…
… var.
  • Loading branch information
jdm committed Apr 24, 2020
1 parent d6ae56b commit a5970ab9c729ca9740ea180cc920825d2c362c3b
Showing 1 changed file with 24 additions and 14 deletions.
@@ -161,21 +161,31 @@ Servo::Servo(hstring url, hstring args, GLsizei width, GLsizei height,

sServo = this; // FIXME;

#ifdef _DEBUG
auto current = winrt::Windows::Storage::ApplicationData::Current();
auto filePath = std::wstring(current.LocalFolder().Path()) + L"\\stdout.txt";
sLogHandle =
CreateFile2(filePath.c_str(), GENERIC_WRITE, 0, CREATE_ALWAYS, nullptr);
if (sLogHandle == INVALID_HANDLE_VALUE)
throw std::runtime_error("Failed to open the log file: error code " +
std::to_string(GetLastError()));

if (SetFilePointer(sLogHandle, 0, nullptr, FILE_END) ==
INVALID_SET_FILE_POINTER)
throw std::runtime_error(
"Failed to set file pointer to the end of file: error code " +
std::to_string(GetLastError()));
#ifndef _DEBUG
char buffer[1024];
bool logToFile = GetEnvironmentVariableA("FirefoxRealityLogStdout", buffer,
sizeof(buffer)) != 0;
#else
bool logToFile = true;
#endif
if (logToFile) {
auto current = winrt::Windows::Storage::ApplicationData::Current();
auto filePath =
std::wstring(current.LocalFolder().Path()) + L"\\stdout.txt";
sLogHandle =
CreateFile2(filePath.c_str(), GENERIC_WRITE, 0, CREATE_ALWAYS, nullptr);
if (sLogHandle == INVALID_HANDLE_VALUE) {
throw std::runtime_error("Failed to open the log file: error code " +
std::to_string(GetLastError()));
}

if (SetFilePointer(sLogHandle, 0, nullptr, FILE_END) ==
INVALID_SET_FILE_POINTER) {
throw std::runtime_error(
"Failed to set file pointer to the end of file: error code " +
std::to_string(GetLastError()));
}
}

capi::CHostCallbacks c;
c.on_load_started = &on_load_started;

0 comments on commit a5970ab

Please sign in to comment.