HWND hLogging = GetDlgItem(hDlg, IDC_ENABLELOGGING);
int showNotifications = Button_GetCheck(hNotify) == BST_CHECKED;
- int enableLog = Button_GetCheck(hLogging) == BST_CHECKED;
settings->SetValue(SettingsKey::NOTIFICATIONS_ENABLED, showNotifications);
+
+ int enableLog = Button_GetCheck(hLogging) == BST_CHECKED;
settings->SetValue(SettingsKey::LOGGING_ENABLED, enableLog);
+ WMLog::GetInstance().SetEnabled(enableLog);
if (Button_GetCheck(hAutostart) == BST_CHECKED) {
settings->EnableAutostart(true);
return log;
}
-WMLog::WMLog() :
- initialized_(false)
+WMLog::WMLog():
+ enabled_(false)
{
- if (OpenLogFile(GetLogFilePath(), logFile_)) {
- initialized_ = true;
- }
}
WMLog::~WMLog()
{
- if (initialized_) {
+ if (logFile_.is_open()) {
logFile_.close();
}
}
return path.string();
}
+void WMLog::DeleteLogFile()
+{
+ auto p = GetLogFilePath();
+ logFile_.close();
+ DeleteFileA(p.c_str());
+}
+
void WMLog::SetEnabled(bool enable)
{
- enabled_ = enable;
+ if (enable == enabled_) {
+ if (!enable) {
+ DeleteLogFile();
+ }
+ return;
+ }
+ if (enable) {
+ if (OpenLogFile(GetLogFilePath(), logFile_)) {
+ enabled_ = true;
+ }
+ } else {
+ if (logFile_.is_open()) {
+ logFile_.close();
+ }
+ DeleteLogFile();
+ enabled_ = false;
+ }
}
void WMLog::WriteMessage(const TCHAR* msg)
void WMLog::Write(const TCHAR *fmt, ...)
{
- if (!initialized_ || !enabled_) {
+ if (!enabled_) {
return;
}