Index: src/liblogger/TLogger.h =================================================================== diff -u -rd9527df01ee91b35d9a5fdccb80ded25a9c8265f -re98c03b108baad889dfd7c7fbb1a49f5ea5a55d8 --- src/liblogger/TLogger.h (.../TLogger.h) (revision d9527df01ee91b35d9a5fdccb80ded25a9c8265f) +++ src/liblogger/TLogger.h (.../TLogger.h) (revision e98c03b108baad889dfd7c7fbb1a49f5ea5a55d8) @@ -25,6 +25,7 @@ #include "SeverityLevels.h" #include "TMultiLoggerConfig.h" #include "TLogRecord.h" +#include "TLoggerPaths.h" namespace logger { @@ -37,6 +38,8 @@ ESeverityLevel GetMinSeverity() const; TLogRecord OpenLogRecord(ESeverityLevel eLevel) const; + std::wstring GetLogFilePath() const; + private: TLoggerLevelConfigPtr m_spLoggerConfig; TLogFileDataPtr m_spFileData; @@ -52,6 +55,8 @@ { if(!spFileData) throw std::invalid_argument("spFileData"); + if(!m_spLoggerConfig) + throw std::invalid_argument("m_spLoggerConfig"); } inline TLogFileDataPtr TLogger::GetLogFileData() const @@ -69,10 +74,21 @@ return TLogRecord(m_spFileData, eLevel, m_strChannel); } + inline std::wstring TLogger::GetLogFilePath() const + { + TLoggerPaths loggerPaths = m_spFileData->GetMainLogPath(); + if(loggerPaths.GetCount() == 0) + throw std::invalid_argument(""); + return loggerPaths.GetAt(0); + } + using TLoggerPtr = std::unique_ptr; inline TLoggerPtr MakeLogger(const TLogFileDataPtr& spFileData, PCTSTR pszChannel) { + if (!spFileData) + throw std::invalid_argument("spFileData"); + return std::make_unique(spFileData, pszChannel); } }