Subversion Repositories HomeAutomation

Rev

Rev 1594 | Rev 1603 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1594 Rev 1600
Line 20... Line 20...
20
 
20
 
21
#include "Logger.h"
21
#include "Logger.h"
22
 
22
 
23
#include <iostream>
23
#include <iostream>
24
 
24
 
-
 
25
#include <syslog.h>
-
 
26
 
25
#include "boost/date_time.hpp"
27
#include <boost/date_time.hpp>
26
 
28
 
27
namespace atom {
29
namespace atom {
28
namespace logging {
30
namespace logging {
29
   
31
   
30
Logger::Level Logger::level_ = Logger::LEVEL_ALL;
32
Logger::Level Logger::level_ = Logger::LEVEL_ALL;
Line 33... Line 35...
33
 
35
 
34
Logger::Logger(std::string name)
36
Logger::Logger(std::string name)
35
{
37
{
36
    this->name_ = name;
38
    this->name_ = name;
37
    this->name_.insert(this->name_.end(), 20 - this->name_.size(), ' ');
39
    this->name_.insert(this->name_.end(), 20 - this->name_.size(), ' ');
-
 
40
   
-
 
41
    openlog("Atom", LOG_ODELAY, LOG_DAEMON);
38
}
42
}
39
 
43
 
40
Logger::~Logger()
44
Logger::~Logger()
41
{
45
{
42
 
46
    closelog();
43
}
47
}
44
 
48
 
45
void Logger::SetLevel(Level level)
49
void Logger::SetLevel(Level level)
46
{
50
{
47
    Logger::level_ = level;
51
    Logger::level_ = level;
48
}
52
}
49
 
53
 
50
bool Logger::OpenFile(std::string filename)
54
bool Logger::OpenFile(std::string filename)
51
{
55
{
52
    Logger::file_.open(filename.data(), std::ios::app);
56
    Logger::file_.open(filename.data(), std::ios::app);
53
   
57
   
54
    return Logger::file_.is_open();
58
    return Logger::file_.is_open();
55
}
59
}
56
 
60
 
57
void Logger::CloseFile()
61
void Logger::CloseFile()
58
{
62
{
59
    Logger::file_.close();
63
    Logger::file_.close();
60
}
64
}
61
 
65
 
Line 70... Line 74...
70
void Logger::Warning(std::string message)
74
void Logger::Warning(std::string message)
71
{
75
{
72
    if (Logger::level_ >= Logger::LEVEL_WARNING)
76
    if (Logger::level_ >= Logger::LEVEL_WARNING)
73
    {
77
    {
74
        this->Print(" WARN  " + this->name_ + message);
78
        this->Print(" WARN  " + this->name_ + message);
75
    }
79
    }
76
}
80
}
77
 
81
 
78
void Logger::Info(std::string message)
82
void Logger::Info(std::string message)
79
{
83
{
80
    if (Logger::level_ >= Logger::LEVEL_INFO)
84
    if (Logger::level_ >= Logger::LEVEL_INFO)
81
    {
85
    {
Line 101... Line 105...
101
   
105
   
102
    if (Logger::file_.is_open())
106
    if (Logger::file_.is_open())
103
    {
107
    {
104
        Logger::file_ << date_and_time << line << std::endl;
108
        Logger::file_ << date_and_time << line << std::endl;
105
    }
109
    }
-
 
110
   
-
 
111
    syslog(LOG_INFO, "%s", line.data());
106
   
112
   
107
    this->mutex_.unlock();
113
    this->mutex_.unlock();
108
}
114
}
109
 
115
 
110
}; // namespace logging
116
}; // namespace logging