From 903a1dea1728be0ef9f5f7b548610251edea4e41 Mon Sep 17 00:00:00 2001 From: mykhailopylyp <17161067+mykhailopylyp@users.noreply.github.com> Date: Fri, 2 Jul 2021 15:57:17 +0300 Subject: [PATCH 1/2] - Fixed module interface logs - Added logs to correlate logs between the runner and color picker process --- src/modules/colorPicker/ColorPicker/dllmain.cpp | 12 ++++++++++-- src/modules/colorPicker/ColorPickerUI/App.xaml.cs | 4 ++++ src/modules/colorPicker/ColorPickerUI/Program.cs | 3 ++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/modules/colorPicker/ColorPicker/dllmain.cpp b/src/modules/colorPicker/ColorPicker/dllmain.cpp index 73a58ae1a743..dc7798042b7c 100644 --- a/src/modules/colorPicker/ColorPicker/dllmain.cpp +++ b/src/modules/colorPicker/ColorPicker/dllmain.cpp @@ -10,6 +10,7 @@ #include #include +#include BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, @@ -108,7 +109,7 @@ class ColorPicker : public PowertoyModuleIface void launch_process() { - Logger::trace(L"Launching ColorPicker process"); + Logger::trace(L"Starting ColorPicker process"); unsigned long powertoys_pid = GetCurrentProcessId(); std::wstring executable_args = L""; @@ -119,7 +120,11 @@ class ColorPicker : public PowertoyModuleIface sei.lpFile = L"modules\\ColorPicker\\ColorPickerUI.exe"; sei.nShow = SW_SHOWNORMAL; sei.lpParameters = executable_args.data(); - if (!ShellExecuteExW(&sei)) + if (ShellExecuteExW(&sei)) + { + Logger::trace("Successfully started the Color Picker process"); + } + else { DWORD error = GetLastError(); std::wstring message = L"ColorPicker failed to start with error = "; @@ -153,6 +158,7 @@ class ColorPicker : public PowertoyModuleIface { app_name = GET_RESOURCE_STRING(IDS_COLORPICKER_NAME); app_key = ColorPickerConstants::ModuleKey; + LoggerHelpers::init_logger(app_key, L"ModuleInterface", "ColorPicker"); send_telemetry_event = CreateDefaultEvent(CommonSharedConstants::COLOR_PICKER_SEND_SETTINGS_TELEMETRY_EVENT); m_hInvokeEvent = CreateDefaultEvent(CommonSharedConstants::SHOW_COLOR_PICKER_SHARED_EVENT); init_settings(); @@ -224,6 +230,7 @@ class ColorPicker : public PowertoyModuleIface virtual void enable() { + Logger::trace("ColorPicker::enable()"); ResetEvent(send_telemetry_event); ResetEvent(m_hInvokeEvent); launch_process(); @@ -232,6 +239,7 @@ class ColorPicker : public PowertoyModuleIface virtual void disable() { + Logger::trace("ColorPicker::disable()"); if (m_enabled) { ResetEvent(send_telemetry_event); diff --git a/src/modules/colorPicker/ColorPickerUI/App.xaml.cs b/src/modules/colorPicker/ColorPickerUI/App.xaml.cs index 0bbe8397514d..69c0f8aea1e0 100644 --- a/src/modules/colorPicker/ColorPickerUI/App.xaml.cs +++ b/src/modules/colorPicker/ColorPickerUI/App.xaml.cs @@ -5,6 +5,7 @@ using System; using System.Threading; using System.Windows; +using ColorPicker.Helpers; using ColorPicker.Mouse; using ManagedCommon; using Microsoft.PowerToys.Common.UI; @@ -30,6 +31,7 @@ protected override void OnStartup(StartupEventArgs e) _instanceMutex = new Mutex(true, @"Local\PowerToys_ColorPicker_InstanceMutex", out bool createdNew); if (!createdNew) { + Logger.LogWarning("There is ColorPicker instance running. Exiting Color Picker"); _instanceMutex = null; Environment.Exit(0); return; @@ -39,8 +41,10 @@ protected override void OnStartup(StartupEventArgs e) { _ = int.TryParse(_args[0], out _powerToysRunnerPid); + Logger.LogInfo($"Color Picker started from the PowerToys Runner. Runner pid={_powerToysRunnerPid}"); RunnerHelper.WaitForPowerToysRunner(_powerToysRunnerPid, () => { + Logger.LogInfo("PowerToys Runner exited. Exiting ColorPicker"); Environment.Exit(0); }); } diff --git a/src/modules/colorPicker/ColorPickerUI/Program.cs b/src/modules/colorPicker/ColorPickerUI/Program.cs index a21aaddabd93..7ca5aa36afd0 100644 --- a/src/modules/colorPicker/ColorPickerUI/Program.cs +++ b/src/modules/colorPicker/ColorPickerUI/Program.cs @@ -3,7 +3,7 @@ // See the LICENSE file in the project root for more information. using System; - +using System.Diagnostics; using ColorPicker.Helpers; using ColorPicker.Mouse; @@ -19,6 +19,7 @@ public static class Program public static void Main(string[] args) { _args = args; + Logger.LogInfo($"Color Picker started with pid={Process.GetCurrentProcess().Id}"); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; try { From df4175b3a7710da89c52efcc542cf0ed41fd13ab Mon Sep 17 00:00:00 2001 From: mykhailopylyp <17161067+mykhailopylyp@users.noreply.github.com> Date: Fri, 2 Jul 2021 16:10:15 +0300 Subject: [PATCH 2/2] Fix logs --- src/modules/colorPicker/ColorPicker/dllmain.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/modules/colorPicker/ColorPicker/dllmain.cpp b/src/modules/colorPicker/ColorPicker/dllmain.cpp index dc7798042b7c..57bc5a89e72c 100644 --- a/src/modules/colorPicker/ColorPicker/dllmain.cpp +++ b/src/modules/colorPicker/ColorPicker/dllmain.cpp @@ -11,6 +11,7 @@ #include #include #include +#include BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, @@ -126,10 +127,7 @@ class ColorPicker : public PowertoyModuleIface } else { - DWORD error = GetLastError(); - std::wstring message = L"ColorPicker failed to start with error = "; - message += std::to_wstring(error); - Logger::error(message); + Logger::error( L"ColorPicker failed to start. {}", get_last_error_or_default(GetLastError())); } m_hProcess = sei.hProcess; @@ -175,6 +173,7 @@ class ColorPicker : public PowertoyModuleIface // Destroy the powertoy and free memory virtual void destroy() override { + Logger::trace("ColorPicker::destroy()"); delete this; }