blob: 8a578544765b4b94effda330930e43fa97e7a478 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
/*
*
* Copyright (c) 2006 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
/*********************************************************************
*
* NOTE: This is a lightweight logging class intended for debugging and
* verification purposes only.
*
* DO NOT USE FOR PRODUCT DEVELOPMENT - Rather, use an agreed upon
* established logging class (such as Apache's log4cxx) for product
* development purposes.
*
*********************************************************************/
#ifndef __LOGGER__
#define __LOGGER__
#include <fstream>
#include <iostream>
namespace qpid {
namespace utils {
class Logger : public std::ofstream
{
private:
bool echo_flag;
bool timestamp_flag;
bool eol_flag;
char buff[128]; // Buffer for writing formatted strings
void write_timestamp();
public:
Logger(const char* filename, const bool append);
Logger(std::string& filename, const bool append);
~Logger();
bool getEchoFlag() {return echo_flag;}
bool setEchoFlag(const bool _echo_flag) {echo_flag = _echo_flag;}
bool getTimestampFlag() {return timestamp_flag;}
bool setTimestampFlag(const bool _timestamp_flag) {timestamp_flag = _timestamp_flag;}
void log(const char* message);
void log(const char* message, const bool echo);
void log(const char* message, const bool echo, const bool timestamp);
Logger& operator<< (bool b);
Logger& operator<< (const short s);
Logger& operator<< (const unsigned short us);
Logger& operator<< (const int i);
Logger& operator<< (const unsigned int ui);
Logger& operator<< (const long l);
Logger& operator<< (const unsigned long ul);
Logger& operator<< (const long long l);
Logger& operator<< (const unsigned long long ul);
Logger& operator<< (const float f);
Logger& operator<< (const double d);
Logger& operator<< (const long double ld);
Logger& operator<< (const char* cstr);
Logger& operator<< (const std::string& str);
};
}
}
#endif
|