*
*/
+#ifndef SETUP_LOGFILE_H
+#define SETUP_LOGFILE_H
+
#include "LogSingleton.h"
#include <sstream>
static LogFile *createLogFile();
LogFile();
void clearFiles(); // delete all target filenames
- void setFile (int minlevel, String const &path, bool append);
- String getFileName (int level) const;
+ void setFile (int minlevel, const std::string& path, bool append);
+ std::string getFileName (int level) const;
+
+ static void setExitMsg (int msg) { exit_msg = msg; }
+ static int getExitMsg () { return exit_msg; }
+
/* Some platforms don't call destructors. So this call exists
* which guarantees to flush any log data...
* but doesn't call generic C++ destructors
*/
- virtual void exit (int const exit_code) __attribute__ ((noreturn));
+ virtual void exit (int exit_code, bool show_end_install_msg = true)
+ __attribute__ ((noreturn));
+ virtual void flushAll ();
virtual ~LogFile();
// get a specific verbosity stream.
virtual std::ostream &operator() (enum log_level level);
LogFile (LogFile const &); // no copy constructor
LogFile &operator = (LogFile const&); // no assignment operator
virtual void endEntry(); // the current in-progress entry is complete.
+ static int exit_msg;
private:
- void log_save (int babble, String const &filename, bool append);
+ void log_save (int babble, const std::string& filename, bool append);
};
+
+#define Logger() ((LogFile &) LogSingleton::GetInstance ())
+#endif /* SETUP_LOGFILE_H */