This is an automated email from the ASF dual-hosted git repository. aboda pushed a commit to branch MINIFICPP-1348-RC1 in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit a405379a97ba5fb357683efb1f17da9257dcbf11 Author: Marton Szasz <[email protected]> AuthorDate: Wed Sep 9 18:01:18 2020 +0200 MINIFICPP-1362 clean up windows service logging Signed-off-by: Arpad Boda <[email protected]> This closes #902 --- main/MiNiFiWindowsService.cpp | 81 ++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 52 deletions(-) diff --git a/main/MiNiFiWindowsService.cpp b/main/MiNiFiWindowsService.cpp index 3cd74b2..083ace2 100644 --- a/main/MiNiFiWindowsService.cpp +++ b/main/MiNiFiWindowsService.cpp @@ -27,29 +27,6 @@ #include "MainHelper.h" #include "core/FlowConfiguration.h" -//#define DEBUG_SERVICE -#ifdef LOG_INFO - #undef LOG_INFO -#endif -#ifdef LOG_ERROR - #undef LOG_ERROR -#endif -#ifdef LOG_LASTERROR - #undef LOG_LASTERROR -#endif - -#ifdef DEBUG_SERVICE - #define LOG_INFO(...) OutputDebug(__VA_ARGS__) - #define LOG_ERROR(...) OutputDebug(__VA_ARGS__) - #define LOG_LASTERROR(str) OutputDebug(str " lastError %x", GetLastError()) -#else - #define LOG_INFO(...) Log()->log_info(__VA_ARGS__) - #define LOG_ERROR(...) Log()->log_error(__VA_ARGS__) - #define LOG_LASTERROR(str) Log()->log_error(str " lastError %x", GetLastError()) -#endif - -#undef DEBUG_SERVICE - // Implemented in MiNiFiMain.cpp void SignalExitProcess(); @@ -90,21 +67,21 @@ void RunAsServiceIfNeeded() { [](DWORD argc, LPTSTR *argv) { setSyslogLogger(); - LOG_INFO("ServiceCtrlDispatcher"); + Log()->log_trace("ServiceCtrlDispatcher"); s_hEvent = CreateEvent(0, TRUE, FALSE, SERVICE_TERMINATION_EVENT_NAME); if (!s_hEvent) { - LOG_LASTERROR("!CreateEvent"); + Log()->log_error("!CreateEvent lastError %x", GetLastError()); return; } s_statusHandle = RegisterServiceCtrlHandler( SERVICE_NAME, [](DWORD ctrlCode) { - LOG_INFO("ServiceCtrlHandler ctrlCode %d", ctrlCode); + Log()->log_trace("ServiceCtrlHandler ctrlCode %d", ctrlCode); if (SERVICE_CONTROL_STOP == ctrlCode) { - LOG_INFO("ServiceCtrlHandler ctrlCode = SERVICE_CONTROL_STOP"); + Log()->log_trace("ServiceCtrlHandler ctrlCode = SERVICE_CONTROL_STOP"); // Set service status SERVICE_STOP_PENDING. s_serviceStatus.dwControlsAccepted = 0; @@ -112,40 +89,40 @@ void RunAsServiceIfNeeded() { s_serviceStatus.dwWin32ExitCode = 0; if (!SetServiceStatus(s_statusHandle, &s_serviceStatus)) { - LOG_LASTERROR("!SetServiceStatus SERVICE_STOP_PENDING"); + Log()->log_error("!SetServiceStatus SERVICE_STOP_PENDING lastError %x", GetLastError()); } bool exeTerminated = false; SetEvent(s_hEvent); - LOG_INFO("Wait for exe termination"); + Log()->log_info("Wait for exe termination"); switch (auto res = WaitForSingleObject(s_hProcess, WAIT_TIME_EXE_TERMINATION)) { case WAIT_OBJECT_0: - LOG_INFO("Exe terminated"); + Log()->log_info("Exe terminated"); exeTerminated = true; break; case WAIT_TIMEOUT: - LOG_ERROR("WaitForSingleObject timeout %d", WAIT_TIME_EXE_TERMINATION); + Log()->log_error("WaitForSingleObject timeout %d", WAIT_TIME_EXE_TERMINATION); break; default: - LOG_ERROR("!WaitForSingleObject return %d", res); + Log()->log_error("!WaitForSingleObject return %d", res); } if (!exeTerminated) { - LOG_INFO("TerminateProcess"); + Log()->log_info("TerminateProcess"); if (TerminateProcess(s_hProcess, 0)) { s_serviceStatus.dwControlsAccepted = 0; s_serviceStatus.dwCurrentState = SERVICE_STOPPED; s_serviceStatus.dwWin32ExitCode = 0; if (!SetServiceStatus(s_statusHandle, &s_serviceStatus)) { - LOG_LASTERROR("!SetServiceStatus SERVICE_STOPPED"); + Log()->log_error("!SetServiceStatus SERVICE_STOPPED lastError %x", GetLastError()); } } else { - LOG_LASTERROR("!TerminateProcess"); + Log()->log_error("!TerminateProcess lastError %x", GetLastError()); } } } @@ -153,7 +130,7 @@ void RunAsServiceIfNeeded() { ); if (!s_statusHandle) { - LOG_LASTERROR("!RegisterServiceCtrlHandler"); + Log()->log_error("!RegisterServiceCtrlHandler lastError %x", GetLastError()); return; } @@ -166,7 +143,7 @@ void RunAsServiceIfNeeded() { s_serviceStatus.dwServiceSpecificExitCode = 0; if (!SetServiceStatus(s_statusHandle, &s_serviceStatus)) { - LOG_LASTERROR("!SetServiceStatus SERVICE_START_PENDING"); + Log()->log_error("!SetServiceStatus SERVICE_START_PENDING lastError %x", GetLastError()); return; } @@ -176,7 +153,7 @@ void RunAsServiceIfNeeded() { s_serviceStatus.dwWin32ExitCode = 0; if (!SetServiceStatus(s_statusHandle, &s_serviceStatus)) { - LOG_LASTERROR("!SetServiceStatus SERVICE_RUNNING"); + Log()->log_error("!SetServiceStatus SERVICE_RUNNING lastError %x", GetLastError()); // Set service status SERVICE_START_PENDING. s_serviceStatus.dwControlsAccepted = 0; @@ -184,7 +161,7 @@ void RunAsServiceIfNeeded() { s_serviceStatus.dwWin32ExitCode = GetLastError(); if (!SetServiceStatus(s_statusHandle, &s_serviceStatus)) { - LOG_LASTERROR("!SetServiceStatus SERVICE_STOPPED"); + Log()->log_error("!SetServiceStatus SERVICE_STOPPED lastError %x", GetLastError()); } return; @@ -192,12 +169,12 @@ void RunAsServiceIfNeeded() { char filePath[MAX_PATH]; if (!GetModuleFileName(0, filePath, _countof(filePath))) { - LOG_LASTERROR("!GetModuleFileName"); + Log()->log_error("!GetModuleFileName lastError %x", GetLastError()); return; } do { - LOG_INFO("Start exe path %s", filePath); + Log()->log_debug("Start exe path %s", filePath); STARTUPINFO startupInfo{}; startupInfo.cb = sizeof(startupInfo); @@ -205,36 +182,36 @@ void RunAsServiceIfNeeded() { PROCESS_INFORMATION processInformation{}; if (!CreateProcess(filePath, 0, 0, 0, 0, FALSE, 0, 0, &startupInfo, &processInformation)) { - LOG_LASTERROR("!CreateProcess"); + Log()->log_error("!CreateProcess lastError %x", GetLastError()); return; } s_hProcess = processInformation.hProcess; - LOG_INFO("%s started", filePath); + Log()->log_info("%s started", filePath); auto res = WaitForSingleObject(processInformation.hProcess, INFINITE); CloseHandle(processInformation.hProcess); CloseHandle(processInformation.hThread); if (WAIT_FAILED == res) { - LOG_LASTERROR("!WaitForSingleObject hProcess"); + Log()->log_error("!WaitForSingleObject hProcess lastError %x", GetLastError()); } else if (WAIT_OBJECT_0 != res) { - LOG_ERROR("!WaitForSingleObject hProcess return %d", res); + Log()->log_error("!WaitForSingleObject hProcess return %d", res); } - LOG_INFO("Sleep %d sec before restarting exe", WAIT_TIME_EXE_RESTART/1000); + Log()->log_info("Sleep %d sec before restarting exe", WAIT_TIME_EXE_RESTART/1000); res = WaitForSingleObject(s_hEvent, WAIT_TIME_EXE_RESTART); if (WAIT_OBJECT_0 == res) { - LOG_INFO("Service was stopped, exe won't be restarted"); + Log()->log_info("Service was stopped, exe won't be restarted"); break; } if (WAIT_FAILED == res) { - LOG_LASTERROR("!WaitForSingleObject s_hEvent"); + Log()->log_error("!WaitForSingleObject s_hEvent lastError %x", GetLastError()); } if (WAIT_TIMEOUT != res) { - LOG_ERROR("!WaitForSingleObject s_hEvent return %d", res); + Log()->log_error("!WaitForSingleObject s_hEvent return %d", res); } } while (true); @@ -243,7 +220,7 @@ void RunAsServiceIfNeeded() { s_serviceStatus.dwWin32ExitCode = 0; if (!SetServiceStatus(s_statusHandle, &s_serviceStatus)) { - LOG_LASTERROR("!SetServiceStatus SERVICE_STOPPED"); + Log()->log_error("!SetServiceStatus SERVICE_STOPPED lastError %x", GetLastError()); } } }, @@ -256,12 +233,12 @@ void RunAsServiceIfNeeded() { return; } - LOG_LASTERROR("!StartServiceCtrlDispatcher"); + Log()->log_error("!StartServiceCtrlDispatcher lastError %x", GetLastError()); ExitProcess(1); } - LOG_INFO("Service exit"); + Log()->log_info("Service exit"); ExitProcess(0); }
