Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #include "LoggerImpl.h"
00037
00038 #include <iostream>
00039 #include <fstream>
00040
00041 using namespace std;
00042
00043 namespace PointMatcherSupport
00044 {
00045 FileLogger::FileLogger(const Parameters& params):
00046 Logger("FileLogger", FileLogger::availableParameters(), params),
00047 infoFileName(Parametrizable::get<std::string>("infoFileName")),
00048 warningFileName(Parametrizable::get<std::string>("warningFileName")),
00049 displayLocation(Parametrizable::get<bool>("displayLocation")),
00050 _infoStream(infoFileName.c_str()),
00051 _warningStream(warningFileName.c_str())
00052 {
00053 if (!_infoStream.good())
00054 throw runtime_error(string("FileLogger::Cannot open info stream to file ") + infoFileName);
00055 if (!_warningStream.good())
00056 throw runtime_error(string("FileLogger::Cannot open warning stream to file ") + warningFileName);
00057 }
00058
00059 bool FileLogger::hasInfoChannel() const
00060 {
00061 return true;
00062 };
00063
00064 void FileLogger::beginInfoEntry(const char *file, unsigned line, const char *func)
00065 {
00066 }
00067
00068 std::ostream* FileLogger::infoStream()
00069 {
00070 return &_infoStream;
00071 }
00072
00073 void FileLogger::finishInfoEntry(const char *file, unsigned line, const char *func)
00074 {
00075 if (displayLocation)
00076 _infoStream << " (at " << file << ":" << line << " in " << func << " )" << endl;
00077 else
00078 _infoStream << endl;
00079 }
00080
00081 bool FileLogger::hasWarningChannel() const
00082 {
00083 return true;
00084 }
00085
00086 void FileLogger::beginWarningEntry(const char *file, unsigned line, const char *func)
00087 {
00088 }
00089
00090 std::ostream* FileLogger::warningStream()
00091 {
00092 return &_warningStream;
00093 }
00094
00095 void FileLogger::finishWarningEntry(const char *file, unsigned line, const char *func)
00096 {
00097 if (displayLocation)
00098 _warningStream << " (at " << file << ":" << line << " in " << func << " )" << endl;
00099 else
00100 _warningStream << endl;
00101 }
00102 }