|
- #include "MainLogger.h"
-
- #include "AllUtils.h"
-
- namespace {
- juce::String getTimestamp() {
- const juce::Time currentTime(juce::Time::getCurrentTime());
-
- juce::String milliseconds(currentTime.getMilliseconds());
- while (milliseconds.length() < 3) {
- milliseconds = "0" + milliseconds;
- }
-
- return currentTime.formatted("%Y-%m-%d_%H-%M-%S.") + milliseconds;
- }
- }
-
- MainLogger::MainLogger(const char* appName, const char* appVersion, const juce::File& logDirectory) {
- // Open log file
- _logFile = logDirectory.getNonexistentChildFile(getTimestamp(), ".txt", true);
- _logFile.create();
-
- _logEnvironment(appName, appVersion);
- }
-
- void MainLogger::logMessage(const juce::String& message) {
-
- const juce::String outputMessage = getTimestamp() + " : " + message + "\n";
-
- juce::FileOutputStream output(_logFile);
- if (output.openedOk()) {
- output.writeText(outputMessage, false, false, "\n");
- }
- }
-
- void MainLogger::_logEnvironment(const char* appName, const char* appVersion) {
-
- juce::FileOutputStream output(_logFile);
-
- if (output.openedOk()) {
- const juce::String archString(
- #if defined(__x86_64__) || defined(_M_AMD64)
- "x86_64"
- #elif defined(__aarch64__) || defined(_M_ARM64)
- "arm64"
- #else
- #error "Unknown arch"
- #endif
- );
-
- const juce::String outputMessage(
- "******************************************************\n" +
- juce::String(appName) + ": " + juce::String(appVersion) + "\n"
- "OS: " + juce::SystemStats::getOperatingSystemName() + "\n"
- "ARCH: " + archString + "\n"
- "CPUs: " + juce::String(juce::SystemStats::getNumPhysicalCpus()) + " (" + juce::String(juce::SystemStats::getNumCpus()) + ")\n"
- "RAM: " + juce::String(juce::SystemStats::getMemorySizeInMegabytes()) + "MB\n"
- "******************************************************\n\n");
-
- output.writeText(outputMessage, false, false, "\n");
- }
- }
|