diff options
author | Zdenek Prikryl <zprikryl@redhat.com> | 2009-02-18 10:13:26 +0100 |
---|---|---|
committer | Zdenek Prikryl <zprikryl@redhat.com> | 2009-02-18 10:13:26 +0100 |
commit | f111c8cf17cbdef8a7f044324ffd510cbcc7ab6f (patch) | |
tree | ad1fccbb5d741a0efcfd334bf5a9c74aae4efbbb /lib/Plugins/Logger.cpp | |
parent | 3c988f99dd2d0898c78feb042e14dda5a6525de5 (diff) | |
download | abrt-f111c8cf17cbdef8a7f044324ffd510cbcc7ab6f.tar.gz abrt-f111c8cf17cbdef8a7f044324ffd510cbcc7ab6f.tar.xz abrt-f111c8cf17cbdef8a7f044324ffd510cbcc7ab6f.zip |
new logger plugin
Diffstat (limited to 'lib/Plugins/Logger.cpp')
-rw-r--r-- | lib/Plugins/Logger.cpp | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/lib/Plugins/Logger.cpp b/lib/Plugins/Logger.cpp new file mode 100644 index 0000000..0af8f07 --- /dev/null +++ b/lib/Plugins/Logger.cpp @@ -0,0 +1,80 @@ +#include "Logger.h" +#include <fstream> + +CLogger::CLogger() : + m_sLogPath("/tmp/CCLogger"), + m_bAppendLogs(true) +{} + +void CLogger::SetSettings(const map_settings_t& pSettings) +{ + if (pSettings.find("Log_Path")!= pSettings.end()) + { + m_sLogPath = pSettings.find("Log_Path")->second; + } + if (pSettings.find("Append_Logs")!= pSettings.end()) + { + m_bAppendLogs = pSettings.find("Append_Logs")->second == "yes"; + } +} + +void CLogger::Report(const crash_report_t& pReport) +{ + std::ofstream fOut; + if (m_bAppendLogs) + { + fOut.open(m_sLogPath.c_str(), std::ios::app); + } + else + { + fOut.open(m_sLogPath.c_str()); + } + if (fOut.is_open()) + { + fOut << "Common information" << std::endl; + fOut << "==================" << std::endl << std::endl; + fOut << "Architecture" << std::endl; + fOut << "------------" << std::endl; + fOut << pReport.m_sArchitecture << std::endl << std::endl; + fOut << "Kernel version" << std::endl; + fOut << "--------------" << std::endl; + fOut << pReport.m_sKernel << std::endl << std::endl; + fOut << "Package" << std::endl; + fOut << "-------" << std::endl; + fOut << pReport.m_sPackage << std::endl << std::endl; + fOut << "Executable" << std::endl; + fOut << "----------" << std::endl; + fOut << pReport.m_sExecutable << std::endl << std::endl; + fOut << "CmdLine" << std::endl; + fOut << "----------" << std::endl; + fOut << pReport.m_sCmdLine << std::endl << std::endl; + fOut << "Created report" << std::endl; + fOut << "==============" << std::endl; + fOut << "Text reports" << std::endl; + fOut << "==============" << std::endl; + if (pReport.m_sTextData1 != "") + { + fOut << "Text Data 1" << std::endl; + fOut << "-----------" << std::endl; + fOut << pReport.m_sTextData1 << std::endl << std::endl; + } + if (pReport.m_sTextData2 != "") + { + fOut << "Text Data 2" << std::endl; + fOut << "-----------" << std::endl; + fOut << pReport.m_sTextData2 << std::endl << std::endl; + } + fOut << "Binary reports" << std::endl; + fOut << "==============" << std::endl; + if (pReport.m_sBinaryData1 != "") + { + fOut << "1. " << pReport.m_sBinaryData1 << std::endl; + } + if (pReport.m_sBinaryData2 != "") + { + fOut << "2. " << pReport.m_sBinaryData2 << std::endl; + } + fOut << std::endl; + fOut.close(); + } +} |