From 25ab4afe787765dac1b201a14ffbc5d2e61b85ec Mon Sep 17 00:00:00 2001 From: Mykhailo Pylyp Date: Fri, 2 Jul 2021 19:54:44 +0300 Subject: [PATCH] [Color Picker] Logs (#12157) * - Fixed module interface logs - Added logs to correlate logs between the runner and color picker process * Fix logs --- .../colorPicker/ColorPicker/dllmain.cpp | 19 +++++++++++++------ .../colorPicker/ColorPickerUI/App.xaml.cs | 4 ++++ .../colorPicker/ColorPickerUI/Program.cs | 3 ++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/modules/colorPicker/ColorPicker/dllmain.cpp b/src/modules/colorPicker/ColorPicker/dllmain.cpp index 73a58ae1a7..57bc5a89e7 100644 --- a/src/modules/colorPicker/ColorPicker/dllmain.cpp +++ b/src/modules/colorPicker/ColorPicker/dllmain.cpp @@ -10,6 +10,8 @@ #include #include +#include +#include BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, @@ -108,7 +110,7 @@ private: 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,12 +121,13 @@ private: sei.lpFile = L"modules\\ColorPicker\\ColorPickerUI.exe"; sei.nShow = SW_SHOWNORMAL; sei.lpParameters = executable_args.data(); - if (!ShellExecuteExW(&sei)) + if (ShellExecuteExW(&sei)) { - DWORD error = GetLastError(); - std::wstring message = L"ColorPicker failed to start with error = "; - message += std::to_wstring(error); - Logger::error(message); + Logger::trace("Successfully started the Color Picker process"); + } + else + { + Logger::error( L"ColorPicker failed to start. {}", get_last_error_or_default(GetLastError())); } m_hProcess = sei.hProcess; @@ -153,6 +156,7 @@ public: { 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(); @@ -169,6 +173,7 @@ public: // Destroy the powertoy and free memory virtual void destroy() override { + Logger::trace("ColorPicker::destroy()"); delete this; } @@ -224,6 +229,7 @@ public: virtual void enable() { + Logger::trace("ColorPicker::enable()"); ResetEvent(send_telemetry_event); ResetEvent(m_hInvokeEvent); launch_process(); @@ -232,6 +238,7 @@ public: 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 0bbe839751..69c0f8aea1 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 @@ namespace ColorPickerUI _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 @@ namespace ColorPickerUI { _ = 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 a21aaddabd..7ca5aa36af 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 @@ namespace ColorPicker public static void Main(string[] args) { _args = args; + Logger.LogInfo($"Color Picker started with pid={Process.GetCurrentProcess().Id}"); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; try {