Index: src/liblogger/TLogFileData.cpp =================================================================== diff -u -N -r8f634460db3f225ca24f2e447b3730d4f0614166 -r4a4360ee83d1051b3bfa3c42f93ca581b81d1744 --- src/liblogger/TLogFileData.cpp (.../TLogFileData.cpp) (revision 8f634460db3f225ca24f2e447b3730d4f0614166) +++ src/liblogger/TLogFileData.cpp (.../TLogFileData.cpp) (revision 4a4360ee83d1051b3bfa3c42f93ca581b81d1744) @@ -21,13 +21,22 @@ namespace logger { + TLogFileData::TLogFileData() : + m_spHasEntriesEvent(CreateEvent(nullptr, TRUE, FALSE, nullptr), CloseHandle), + m_spLoggerConfig(std::make_shared()), + m_spLogFile() + { + } + TLogFileData::TLogFileData(PCTSTR pszLogPath, const TMultiLoggerConfigPtr& spLoggerConfig, const TLoggerRotationInfoPtr& spRotationInfo) : m_spHasEntriesEvent(CreateEvent(nullptr, TRUE, FALSE, nullptr), CloseHandle), m_spLoggerConfig(spLoggerConfig), - m_logFile(pszLogPath, spRotationInfo) + m_spLogFile(std::make_unique(pszLogPath, spRotationInfo)) { if(m_spHasEntriesEvent.get() == INVALID_HANDLE_VALUE) throw std::runtime_error("Cannot create file data event"); + if(!spLoggerConfig) + throw std::runtime_error("spLoggerConfig"); } TMultiLoggerConfigPtr TLogFileData::GetMultiLoggerConfig() const @@ -49,11 +58,13 @@ void TLogFileData::StoreLogEntries() { - m_logFile.Write(m_listEntries); + if(m_spLogFile) + m_spLogFile->Write(m_listEntries); } void TLogFileData::CloseUnusedFile() { - m_logFile.CloseIfUnused(); + if(m_spLogFile) + m_spLogFile->CloseIfUnused(); } }