Index: src/ch/StatusDlg.cpp =================================================================== diff -u -r9ddf8fdd5f641491dd30c49eb90f8f740314b6af -rdb26c9ac6945d5c754c3460dd55bd6d53e2c9e7e --- src/ch/StatusDlg.cpp (.../StatusDlg.cpp) (revision 9ddf8fdd5f641491dd30c49eb90f8f740314b6af) +++ src/ch/StatusDlg.cpp (.../StatusDlg.cpp) (revision db26c9ac6945d5c754c3460dd55bd6d53e2c9e7e) @@ -26,6 +26,7 @@ #include "Structs.h" #include "CfgProperties.h" #include "../libchengine/TTaskManager.h" +#include "../libchengine/TLocalFilesystem.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -733,7 +734,15 @@ if(!spTask) return; - ULONG_PTR hResult = (ULONG_PTR)ShellExecute(this->m_hWnd, _T("open"), _T("notepad.exe"), spTask->GetLogPath().ToString(), nullptr, SW_SHOWNORMAL); + chcore::TSmartPath logPath = spTask->GetLogPath(); + chengine::TLocalFilesystem localFilesystem(GetLogFileData()); + if(!localFilesystem.PathExist(logPath)) + { + MsgBox(IDS_LOGFILEEMPTY_STRING, MB_OK | MB_ICONINFORMATION); + return; + } + + ULONG_PTR hResult = (ULONG_PTR)ShellExecute(this->m_hWnd, _T("open"), _T("notepad.exe"), logPath.ToString(), nullptr, SW_SHOWNORMAL); if(hResult < 32) { ictranslate::CFormat fmt(GetResManager().LoadString(IDS_SHELLEXECUTEERROR_STRING)); Index: src/ch/ch.cpp =================================================================== diff -u -r9ddf8fdd5f641491dd30c49eb90f8f740314b6af -rdb26c9ac6945d5c754c3460dd55bd6d53e2c9e7e --- src/ch/ch.cpp (.../ch.cpp) (revision 9ddf8fdd5f641491dd30c49eb90f8f740314b6af) +++ src/ch/ch.cpp (.../ch.cpp) (revision db26c9ac6945d5c754c3460dd55bd6d53e2c9e7e) @@ -265,6 +265,7 @@ m_spEngineLoggerConfig->SetLogLevel(L"Serializer-RowData", (logger::ESeverityLevel)GetPropValue(rCfg)); m_spEngineLoggerConfig->SetLogLevel(L"Serializer-Container", (logger::ESeverityLevel)GetPropValue(rCfg)); m_spEngineLoggerConfig->SetLogLevel(L"TaskManager", (logger::ESeverityLevel)GetPropValue(rCfg)); + // also update CCopyHandlerApp::OnConfigNotify() with new channels // initialize the global log file if it is requested by configuration file CString strLogPath = strPath + _T("\\ch.log"); @@ -653,7 +654,10 @@ m_spLog->GetLogFileData()->GetMultiLoggerConfig()->SetLogLevel(L"default", (logger::ESeverityLevel)GetPropValue(rCfg)); if(setPropNames.HasValue(PropData::GetPropertyName())) + { m_spEngineLoggerConfig->SetLogLevel(L"default", (logger::ESeverityLevel)GetPropValue(rCfg)); + m_spEngineLoggerConfig->SetLogLevel(L"TaskManager", (logger::ESeverityLevel)GetPropValue(rCfg)); + } if(setPropNames.HasValue(PropData::GetPropertyName())) { m_spEngineLoggerConfig->SetLogLevel(L"Filesystem", (logger::ESeverityLevel)GetPropValue(rCfg)); @@ -670,6 +674,14 @@ m_spEngineLoggerConfig->SetLogLevel(L"ST-Delete", (logger::ESeverityLevel)GetPropValue(rCfg)); if(setPropNames.HasValue(PropData::GetPropertyName())) m_spEngineLoggerConfig->SetLogLevel(L"ST-ScanDirs", (logger::ESeverityLevel)GetPropValue(rCfg)); + + if(setPropNames.HasValue(PropData::GetPropertyName())) + { + m_spEngineLoggerConfig->SetLogLevel(L"Serializer", (logger::ESeverityLevel)GetPropValue(rCfg)); + m_spEngineLoggerConfig->SetLogLevel(L"Serializer-RowReader", (logger::ESeverityLevel)GetPropValue(rCfg)); + m_spEngineLoggerConfig->SetLogLevel(L"Serializer-RowData", (logger::ESeverityLevel)GetPropValue(rCfg)); + m_spEngineLoggerConfig->SetLogLevel(L"Serializer-Container", (logger::ESeverityLevel)GetPropValue(rCfg)); + } } void CCopyHandlerApp::OnResManNotify(UINT uiType) Index: src/ch/ch.rc =================================================================== diff -u -rcf73cd72a012517c1efe09a740516c6f4dc2c150 -rdb26c9ac6945d5c754c3460dd55bd6d53e2c9e7e --- src/ch/ch.rc (.../ch.rc) (revision cf73cd72a012517c1efe09a740516c6f4dc2c150) +++ src/ch/ch.rc (.../ch.rc) (revision db26c9ac6945d5c754c3460dd55bd6d53e2c9e7e) @@ -1049,6 +1049,7 @@ IDS_SHELLEXECUTEERROR_STRING "Error #%errno calling ShellExecute for file %path" IDS_BSDEFAULT_STRING "Default: " + IDS_LOGFILEEMPTY_STRING "Log file is empty" END STRINGTABLE Index: src/ch/langs/polish.lng =================================================================== diff -u -rb556d023b748dfea230575959b6513acf29fd7b3 -rdb26c9ac6945d5c754c3460dd55bd6d53e2c9e7e Binary files differ Index: src/ch/resource.h =================================================================== diff -u -r5aac942a83e4a308ff401cca43be501b1bbdfb6a -rdb26c9ac6945d5c754c3460dd55bd6d53e2c9e7e --- src/ch/resource.h (.../resource.h) (revision 5aac942a83e4a308ff401cca43be501b1bbdfb6a) +++ src/ch/resource.h (.../resource.h) (revision db26c9ac6945d5c754c3460dd55bd6d53e2c9e7e) @@ -704,6 +704,7 @@ #define IDS_STATUS_LOADERROR_STRING 21555 #define IDS_EXPORTING_TASK_FAILED 21556 #define IDS_BUTTON_TRUNCATE_STRING 21557 +#define IDS_LOGFILEEMPTY_STRING 21558 #define ID_POPUP_SHOW_STATUS 32773 #define ID_POPUP_TIME_CRITICAL 32774 #define ID_POPUP_HIGHEST 32775