commit a0f30cc86fe8f868dfc4b638a13a19dd42fef035
parent 96f78a5cbf7a882e8d8823db186c5116ac6d3f93
Author: Ruben Guerrero <rubengu@microsoft.com>
Date: Mon, 22 Jun 2020 16:53:05 -0700
Add logging to user settings (#452)
Diffstat:
2 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/src/AppInstallerCLICore/Commands/SettingsCommand.cpp b/src/AppInstallerCLICore/Commands/SettingsCommand.cpp
@@ -56,6 +56,7 @@ namespace AppInstaller::CLI
if (static_cast<int>(reinterpret_cast<uintptr_t>(res)) <= 32)
{
// User doesn't have file type association. Default to notepad
+ AICLI_LOG(CLI, Info, << "Json file type association not found, using notepad.exe");
ShellExecuteW(nullptr, nullptr, L"notepad", filePathUTF16.c_str(), nullptr, SW_SHOW);
}
}
diff --git a/src/AppInstallerCommonCore/UserSettings.cpp b/src/AppInstallerCommonCore/UserSettings.cpp
@@ -3,6 +3,7 @@
#include "pch.h"
#include <AppInstallerRuntime.h>
#include "AppInstallerLanguageUtilities.h"
+#include "AppInstallerLogging.h"
#include "JsonUtil.h"
#include "winget/Settings.h"
#include "winget/UserSettings.h"
@@ -24,10 +25,11 @@ namespace AppInstaller::Settings
// }
})"sv;
- namespace SettingsWarnings
+ namespace SettingsMessage
{
const char* const Field = " Field: ";
const char* const Value = " Value: ";
+ const char* const ValidMessage = "Valid setting";
const char* const InvalidFieldValue = "Invalid field value.";
const char* const InvalidFieldFormat = "Invalid field format.";
constexpr std::string_view LoadedBackupSettings = "Loaded settings from backup file."sv;
@@ -38,7 +40,7 @@ namespace AppInstaller::Settings
// Jsoncpp doesn't provide line number and column for an individual Json::Value node.
inline std::string GetSettingsMessage(const std::string& message, const std::string& path)
{
- return message + SettingsWarnings::Field + path;
+ return message + SettingsMessage::Field + path;
}
template<class T>
@@ -56,7 +58,7 @@ namespace AppInstaller::Settings
convertedValue = value;
}
- return GetSettingsMessage(message, path) + SettingsWarnings::Value + convertedValue;
+ return GetSettingsMessage(message, path) + SettingsMessage::Value + convertedValue;
}
@@ -82,6 +84,7 @@ namespace AppInstaller::Settings
return root;
}
+ AICLI_LOG(Core, Error, << "Error parsing " << fileName.u8string() << ": " << error);
warnings.emplace_back(fileName.u8string());
warnings.emplace_back(error);
}
@@ -113,17 +116,26 @@ namespace AppInstaller::Settings
// Finally add it to the map
settings[S].emplace<details::SettingIndex(S)>(
std::forward<typename details::SettingMapping<S>::value_t>(validatedValue.value()));
+ AICLI_LOG(Core, Info, << GetSettingsMessage(SettingsMessage::ValidMessage, path, jsonValue.value()));
}
else
{
- warnings.push_back(GetSettingsMessage(SettingsWarnings::InvalidFieldValue, path, jsonValue.value()));
+ auto invalidFieldMsg = GetSettingsMessage(SettingsMessage::InvalidFieldValue, path, jsonValue.value());
+ AICLI_LOG(Core, Error, << invalidFieldMsg << " Using default");
+ warnings.emplace_back(invalidFieldMsg);
}
}
else
{
- warnings.emplace_back(GetSettingsMessage(SettingsWarnings::InvalidFieldFormat, path));
+ auto invalidFormatMsg = GetSettingsMessage(SettingsMessage::InvalidFieldFormat, path);
+ AICLI_LOG(Core, Error, << invalidFormatMsg << " Using default");
+ warnings.emplace_back(invalidFormatMsg);
}
}
+ else
+ {
+ AICLI_LOG(Core, Info, << "Setting " << path <<" not found. Using default");
+ }
}
template <size_t... S>
@@ -183,6 +195,7 @@ namespace AppInstaller::Settings
auto settingsJson = ParseFile(s_SettingFileName, m_warnings);
if (settingsJson.has_value())
{
+ AICLI_LOG(Core, Info, << "Settings loaded from " << s_SettingFileName);
m_type = UserSettingsType::Standard;
settingsRoot = settingsJson.value();
}
@@ -193,7 +206,8 @@ namespace AppInstaller::Settings
auto settingsBackupJson = ParseFile(s_SettingBackupFileName, m_warnings);
if (settingsBackupJson.has_value())
{
- m_warnings.emplace_back(SettingsWarnings::LoadedBackupSettings);
+ AICLI_LOG(Core, Info, << "Settings loaded from " << s_SettingFileName);
+ m_warnings.emplace_back(SettingsMessage::LoadedBackupSettings);
m_type = UserSettingsType::Backup;
settingsRoot = settingsBackupJson.value();
}
@@ -203,6 +217,10 @@ namespace AppInstaller::Settings
{
ValidateAll(settingsRoot, m_settings, m_warnings, std::make_index_sequence<static_cast<size_t>(Setting::Max)>());
}
+ else
+ {
+ AICLI_LOG(Core, Info, << "Valid settings file not found. Using default values.");
+ }
}
void UserSettings::PrepareToShellExecuteFile() const
@@ -215,6 +233,7 @@ namespace AppInstaller::Settings
if (!std::filesystem::exists(UserSettings::SettingsFilePath()))
{
SetSetting(Type::UserFile, s_SettingFileName, s_SettingEmpty);
+ AICLI_LOG(Core, Info, << "Created new settings file");
}
}
else if (userSettingType == UserSettingsType::Standard)
@@ -223,6 +242,7 @@ namespace AppInstaller::Settings
auto from = SettingsFilePath();
auto to = SettingsBackupFilePath();
std::filesystem::copy_file(from, to, std::filesystem::copy_options::overwrite_existing);
+ AICLI_LOG(Core, Info, << "Copied settings to backup file");
}
}