]> git.vomp.tv Git - vompclient.git/blob - src/log.cc
Implement Log shutdown
[vompclient.git] / src / log.cc
1 #include <iostream>
2 #include <fstream>
3
4 #include "log.h"
5
6 LogNT* LogNT::instance = NULL;
7
8 LogNT::LogNT()
9 {
10   instance = this;
11 }
12
13 LogNT::~LogNT()
14 {
15   instance = NULL;
16 }
17
18 LogNT* LogNT::getInstance()
19 {
20   return instance;
21 }
22
23 bool LogNT::init(const std::string& tfileName, bool tenabled)
24 {
25   if (!tenabled) return true;
26
27   if (enabled) return true;
28
29   fileName = tfileName; // Keep the filename for later?
30   if (!fileName.compare("stdout"))
31   {
32     outstream = &std::cout;
33     enabled = true;
34     return true;
35   }
36
37   outstream = &logFile;
38   logFile.open(fileName, std::ios_base::out | std::ios_base::app);
39   if (!logFile.is_open()) return false;
40
41   enabled = true;
42   return true;
43 }
44
45 void LogNT::shutdown()
46 {
47   if (!enabled) return;
48
49   traceOnlyMode = false;
50   info("LOG", "Shutting down... bye!\n\n");
51
52   enabled = false;
53   if (logFile.is_open()) logFile.close();
54 }
55
56 void LogNT::setTraceOnlyMode(bool t)
57 {
58   traceOnlyMode = t;
59 }