void CCenTime::GetDate(char *timebuf, int Len) { char tmpbuf[128]; if(!timebuf) { return; } // Set time zone from TZ environment variable. If TZ is not set, // the operating system is queried to obtain the default value // for the variable. // _tzset(); // Display operating system-style date and time. _strdate_s( tmpbuf, 128 ); tmpbuf[8]=tmpbuf[6]; tmpbuf[9]=tmpbuf[7]; tmpbuf[6]='2'; tmpbuf[7]='0'; tmpbuf[10]=0; strcpy_s(timebuf, Len, tmpbuf); return; }
NMPRKC_API nmprk_status_t NMPRK_StartDebugLogging( const char *filename) { char dateStr[MAX_DATE_STR_LEN]; char timeStr[MAX_DATE_STR_LEN]; if(si_fsDebugLog.is_open() == true) return NMPRK_FAILURE; try { si_debugModule = SI_DEBUG_MODULE_ALL; si_debugLevel = SI_DEBUG_LEVEL_ALL; si_fsDebugLog.open(filename, std::fstream::out | std::fstream::app); if(si_fsDebugLog.is_open() != true) return NMPRK_FAILURE; } catch (...) { return NMPRK_FAILURE; } #if defined WIN32 _strdate_s(dateStr, MAX_DATE_STR_LEN); _strtime_s(timeStr, MAX_DATE_STR_LEN); #else time_t mytime = time(NULL); strftime(dateStr, 9, "%D", localtime(&mytime)); strftime(timeStr, 9, "%T", localtime(&mytime)); #endif SI_DEBUG_INFO(SI_THIS_MODULE, "Debug Logging Started: %s %s", dateStr, timeStr); return NMPRK_SUCCESS; }
void Log::m_close() { if(!m_file) { return; } char timer[9]; _strtime_s(timer, 9); char date[9]; _strdate_s(date, 9); fprintf(m_file, "\nКонец лога: %s %s.", date, timer); fclose(m_file); }
void Log::m_close() { if (!m_file) return; char timer[9]; _strtime_s(timer, 9); char date[9]; _strdate_s(date, 9); fprintf(m_file, "\n---------------------------------------\n"); fprintf(m_file, "Log end: %s %s\n", date, timer); fclose(m_file); }
void Log::m_init() { setlocale(LC_ALL, "rus"); if(fopen_s(&m_file, LOGNAME, "w") == 0) { char timer[9]; _strtime_s(timer, 9); char date[9]; _strdate_s(date, 9); fprintf(m_file, "Лог создан: %s %s.\n\n", date, timer); } else { printf("Ошибка при создании файла лога\n"); m_file = nullptr; } }
void CGCServiceApp::log(const char* msg) { if (!m_Fh) { m_Fh = Safe::fopen("desura_service.log", "a"); char dateStr[9]; char timeStr[9]; _strdate_s(dateStr); _strtime_s(timeStr); if (m_Fh) fprintf(m_Fh, "\n\nStarted Logging: %s at %s\n", dateStr, timeStr); } if (m_Fh) fprintf(m_Fh, "%s", msg); printf("%s", msg); }
//--------Инициализация класса--------// void Log::m_init() { setlocale(LC_ALL, "RUS"); //Если файл можно открыть для записи if (fopen_s(&m_file, LOGNAME, "w") == 0) { //Получение времени и даты char timer[9]; _strtime_s(timer, 9); char date[9]; _strdate_s(date, 9); //Запись в файл fprintf(m_file, "Log has created at %s %s \n", date, timer); fprintf(m_file, "-------------------------------------------\n\n"); } else { printf("Error while log creating....\n"); m_file = nullptr; } }
//로그 찍기 VOID cLogMgr::AddLog( char* strmsg, ... ) { char szBuff[4096]; char szDate[128]; //날짜 char szTime[128]; //시간 _strdate_s( szDate, 128 ); _strtime_s( szTime, 128 ); vsprintf_s( szBuff, strmsg, (char*)(&strmsg+1) ); //Console에 출력할 경우 if( m_nTarget & LOG_CONSOLE ) { printf( "(data[%s] time[%s] ) : %s\n", szDate, szTime, szBuff ); } //FILE 에 출력 할경우 if( m_nTarget & LOG_FILE ) { LogFile( "(data[%s] time[%s] ) : %s\n", szDate, szTime, szBuff ); } //LOG 윈도우에 출력할 경우 ( 디버그 모드에서만 지원 #ifdef _DEBUG if( m_nTarget & LOG_WINDOW ) { //윈도우 리스트 박스에 로그 추가 SendMessage( m_hWndListBox, LB_ADDSTRING, 0, (LPARAM)szBuff ); //추가된 리스트 박스의 순번 얻기 (마지막을 선택하면 된다 ) UINT32 n = SendMessage( m_hWndListBox, LB_GETCOUNT, 0, 0 ) - 1; //선택 커서 마지막으로 SendMessage( m_hWndListBox, LB_SETCURSEL, (WPARAM)n, 0 ); } #endif //_DEBUG }
void Time::SetSystemTime () { int hr, mn, sec, m, d, y; char timebuf[100]; char datebuf[100]; std::string line; #ifdef _MSC_VER #ifdef VS2005 _strtime_s ( timebuf, 100 ); _strdate_s ( datebuf, 100 ); #else _strtime ( timebuf ); _strdate ( datebuf ); #endif #endif #if (defined(__linux__) || defined(__CYGWIN__)) time_t tt; struct tm tim; tt = time(NULL); localtime_r(&tt, &tim); sprintf( timebuf, "%02i:%02i:%02i", tim.tm_hour, tim.tm_min, tim.tm_sec); sprintf( datebuf, "%02i:%02i:%02i", tim.tm_mon, tim.tm_mday, tim.tm_year % 100); #endif line = timebuf; hr = atoi ( line.substr ( 0, 2).c_str() ); mn = atoi ( line.substr ( 3, 2).c_str() ); sec = atoi ( line.substr ( 6, 2).c_str() ); line = datebuf; m = atoi ( line.substr ( 0, 2).c_str() ); d = atoi ( line.substr ( 3, 2).c_str() ); y = atoi ( line.substr ( 6, 2).c_str() ); // NOTE: This only works from 1930 to 2030 if ( y > 30) y += 1900; else y += 2000; SetTime ( hr, mn, m, d, y, sec, 0, 0); }
int KLog::Log(LPSTR fmt, ...){ if (m_nTarget & K_LOG_TARGET_UNDEFINED){ return 0; } char buff[1024]; char date[128]; char time[128]; _strdate_s(date); _strtime_s(time); vsprintf_s(buff, fmt, (char*)(&fmt + 1)); // Console에 출력할 경우 if (m_nTarget & K_LOG_TARGET_CONSOLE){ printf("(date[%s] time[%s]) : %s\n", date, time, buff); } // Log File에 출력할 경우 if (m_nTarget & K_LOG_TARGET_FILE){ FILE* fp = NULL; fopen_s(&fp, m_szFilename, "a+"); if (fp){ // fprintf(fp, "(date[%s] time[%s] : %s\n", date, time, buff); fprintf(fp, "%s\n", buff); fclose(fp); } } //Log Window에 출력할 경우 if (m_nTarget& K_LOG_TARGET_WINDOW){ SendMessage(m_hwndList, LB_ADDSTRING, 0, (LPARAM)buff); UINT32 n = SendMessage(m_hwndList, LB_GETCOUNT, 0, 0L) - 1; SendMessage(m_hwndList, LB_SETCURSEL, (WPARAM)n, 0L); } return 1; }
/* CAUTION: Try to avoid use AddLogInfo from the main application thread. Otherwise deadlock can occur!! TODO : make this function into a new thread on every call... */ void CLogger::AddLogInfo(int color, char *lpszText, ...) { char szColor[10]; strcpy_s(szColor,sizeof(szColor),"000000"); //Default if(color==GS_LOG_WARNING) strcpy_s(szColor,sizeof(szColor),"99dd00"); else if(color==GS_LOG_DEBUG) strcpy_s(szColor,sizeof(szColor),"0000FF"); else if(color==GS_LOG_ERROR) strcpy_s(szColor,sizeof(szColor),"FF0000"); char time[64], date[64]; // Set time zone from TZ environment variable. If TZ is not set, // the operating system is queried to obtain the default value // for the variable. // _tzset(); // Display operating system-style date and time. _strtime_s( time, 64 ); _strdate_s( date, 64 ); if(TryEnterCriticalSection(&CS_Logger)==FALSE) return; va_list argList; FILE *pFile = NULL; //Initialize variable argument list va_start(argList, lpszText); if(szLogPath!=NULL) SetCurrentDirectory(szLogPath); //Open the g_log.file for appending pFile = fopen("g_log.htm", "a+"); if(pFile != NULL) { //Write the error to the g_log.file fprintf(pFile, "<font face=\"Arial\" size=\"2\" color=\"#%s\"><b>",szColor); fprintf(pFile, "[%s][%s]",date,time); vfprintf(pFile, lpszText, argList); fprintf(pFile, "</b></font><br>\n"); //Close the file fclose(pFile); char szBuffer[512]; vsprintf_s(szBuffer,sizeof(szBuffer),lpszText, argList); UTILZ_sLogger.append(szBuffer); UTILZ_sLogger.append("\r\n"); if(UTILZ_sLogger.length()>1000) UTILZ_sLogger.erase(UTILZ_sLogger.begin(),UTILZ_sLogger.begin()+UTILZ_sLogger.find_first_of("\n")); //strlen(szBuffer)); SetWindowText(hwndLogger,UTILZ_sLogger.c_str()); SendMessage(hwndLogger,WM_VSCROLL,LOWORD(SB_BOTTOM),NULL); #ifdef _DEBUG OutputDebugString(szBuffer); OutputDebugString("\n"); #endif } va_end(argList); LeaveCriticalSection(&CS_Logger); }
void CSimpleLog::Add(const char* fmt, ...) { if(!m_fp) { // 设置当前目录为流媒体主程序目录 std::string app_path = GetAppPath(); app_path = app_path + m_logdir; _mkdir(app_path.c_str()); struct tm *now; time_t ltime; time(<ime); now = localtime(<ime); char chFile[512] = {0}; sprintf_s(chFile, "%s\\Log_%d_%d_%d %02d_%02d_%02d.log", app_path.c_str() , now->tm_year+1900, now->tm_mon+1, now->tm_mday,now->tm_hour,now->tm_min,now->tm_sec); m_fp = fopen(chFile, "w+"); //以添加的方式输出到文件 if (!m_fp) return; } /*-----------------------进入临界区(写文件)------------------------------*/ ::EnterCriticalSection(&m_crit); try { va_list argptr; //分析字符串的格式 va_start(argptr, fmt); _vsnprintf(m_tBuf, BUFSIZE, fmt, argptr); va_end(argptr); } catch (...) { m_tBuf[0] = 0; } char szDate[64] = {0}; char szTime[64] = {0}; _strdate_s(szDate); _strtime_s(szTime); fprintf(m_fp,"%s %s\t", szDate, szTime); fprintf(m_fp, "%s\n", m_tBuf); fflush(m_fp); ::LeaveCriticalSection(&m_crit); /*----------------------------退出临界区---------------------------------*/ }