26 me =
new QMessageHandler();
33 std::string s = sender;
36 int i = 31 - s.size();
40 if ( l >= print_level ) {
42 std::istringstream msgStream(msg);
44 while(std::getline(msgStream,line)) {
45 std::cout << s << line << std::endl;
50 if ( l >= log_level ) {
51 std::string stringLevel;
54 stringLevel =
"(DD) ";
57 stringLevel =
"(II) ";
60 stringLevel =
"(WW) ";
63 stringLevel =
"(EE) ";
66 stringLevel =
"(PP) ";
70 stringLevel =
"(NN) ";
73 std::istringstream msgStream(msg);
75 while(std::getline(msgStream,line)) {
76 logfile << stringLevel << s << line << std::endl;
82 throw std::runtime_error(
"Diana Panic!");
89 std::string logfilename = lfile;
90 logfile.open(logfilename.c_str());
91 unlink(
"diana_last.log");
92 symlink(logfilename.c_str(),
"diana_last.log");
94 std::string msg =
"cannot open logfile: " + logfilename + std::string(
" for writing");
95 Send(
ErrorMsg,
"QMessageHandler",msg);
97 std::string msg =
"logfile is: " + logfilename;
98 Send(
InfoMsg,
"QMessageHandler",msg);
101 time_t now = ::time(0);
103 ::strftime(time_s,50,
"Diana Run Started at %H:%M:%S on %d-%m-%Y", ::localtime(&now) );
119 std::cout <<
"\033[01;00m";
122 std::cout <<
"\033[01;00m";
125 std::cout <<
"\033[01;32m";
128 std::cout <<
"\033[01;31m";
131 std::cout <<
"\033[01;35m";
134 std::cout <<
"\033[01;00m";
#define Q_BEGIN_NAMESPACE
void Init(MsgLevel plevel, MsgLevel llevel, const std::string &logfile)
static QMessageHandler * Get()
void Send(MsgLevel l, const std::string &sender, const std::string &msg)
static QMessageHandler * me
general purpose string manipulation functions