// WJF 7/11/16 Win-20 Internal function so that we can switch files when the day rolls over LONG logOpenFile() { SYSTEMTIME lt; LONG returnValue = 0; if (szLogsPath != NULL) { strcpy_s(logFilePath, MAX_PATH, szLogsPath); // strcat_s(logFilePath, MAX_PATH, "Win32API\\"); CreateDirectory(logFilePath, NULL); if (lNumDays > 0) { logMaintenance(); } strcat_s(logFilePath, MAX_PATH, "Win32API_"); GetLocalTime(<); sprintf_s(dateOpened, 16, "%04u%02u%02u", lt.wYear, lt.wMonth, lt.wDay); strcat_s(logFilePath, MAX_PATH, dateOpened); strcat_s(logFilePath, MAX_PATH, ".log"); hLogFile = CreateFile(logFilePath, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hLogFile != INVALID_HANDLE_VALUE) { bLogIsOpen = TRUE; returnValue = 1; // WJF 7/11/16 Win-20 } } return returnValue; }
/**************************************** ** Author: Joe Li ** Purpose: Save log file ** Comments: ****************************************/ bool DOSaveAppData::SaveLog(const CComBSTR& targetPath, LOG_TYPE logToSave) { HRESULT hr = E_FAIL; DOLogMaintenanceBase logMaintenance(hr); if (SUCCEEDED(hr)) { SetDateTime(); CComBSTR targetLogFileName = m_dateTime; switch(logToSave) { case ALARM_LOG: targetLogFileName.Append(_T("AlarmLog.txt")); break; case ERROR_LOG: targetLogFileName.Append(_T("ErrorLog.txt")); break; case RND_LOG: targetLogFileName.Append(_T("RnDLog.txt")); break; case KEYPRESS_LOG: targetLogFileName.Append(_T("KeyPressLog.txt")); break; case EVENT_LOG: targetLogFileName.Append(_T("EventLog.txt")); break; default: return false; } return logMaintenance.WriteLogEntriesToRemovableStorage(logToSave, targetPath, targetLogFileName); } return false; }