BOOL CDebugLog::OpenLogFile() { if(IsLogFileOpen()) { return TRUE; } wstring strFilePath = _T("d:\\logs\\chrome.txt"); m_hLogFile = ::CreateFile(strFilePath.c_str(), GENERIC_WRITE, FILE_SHARE_READ, NULL, TRUNCATE_EXISTING, 0, NULL); return IsLogFileOpen(); }
void CLogging::VLog( const LogType type, const DevLevel::DevLevel devLevel, const char* const pszFormat, va_list list ) { assert( pszFormat != nullptr && *pszFormat ); if( m_bInLog ) return; if( developer.GetInt() < devLevel ) return; m_bInLog = true; char szBuffer[ 8192 ]; const int iRet = vsnprintf( szBuffer, sizeof( szBuffer ), pszFormat, list ); if( iRet < 0 || static_cast<size_t>( iRet ) >= sizeof( szBuffer ) ) { if( !PrintfSuccess( snprintf( szBuffer, sizeof( szBuffer ), "Log buffer too small for '%s'\n", pszFormat ), sizeof( szBuffer ) ) ) { strcpy( szBuffer, "Log buffer too small\n" ); } } if( IsLogFileOpen() ) { fprintf( m_pLogFile, "%s", szBuffer ); } GetLogListener()->LogMessage( type, szBuffer ); m_bInLog = false; }
BOOL CDebugLog::CloseLogFile() { if(IsLogFileOpen() == FALSE) { return FALSE; } return CloseHandle(m_hLogFile); }
void CLogging::CloseLogFile() { if( IsLogFileOpen() ) { auto now = std::chrono::system_clock::now(); const time_t time = std::chrono::system_clock::to_time_t( now ); //No newline because ctime's return value contains one. fprintf( m_pLogFile, "Log closed on %s", ctime( &time ) ); fclose( m_pLogFile ); m_pLogFile = nullptr; } }
bool CLogging::OpenLogFile( const char* const pszFilename, const bool bAppend ) { assert( pszFilename && *pszFilename ); CloseLogFile(); m_pLogFile = fopen( pszFilename, bAppend ? "wa" : "w" ); if( m_pLogFile ) { auto now = std::chrono::system_clock::now(); const time_t time = std::chrono::system_clock::to_time_t( now ); //No newline because ctime's return value contains one. fprintf( m_pLogFile, "Log opened on %s", ctime( &time ) ); } return IsLogFileOpen(); }