-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogging.h
More file actions
63 lines (49 loc) · 1013 Bytes
/
logging.h
File metadata and controls
63 lines (49 loc) · 1013 Bytes
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
// Copyright 2015 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <sstream>
#include "common.h"
namespace prt {
enum class LogLevel : int
{
Error = 1,
Warn,
Info,
};
class LogMessage
{
private:
std::ostringstream stream;
LogLevel level;
public:
explicit LogMessage(LogLevel level);
~LogMessage();
template <class T>
LogMessage& operator <<(const T& v)
{
stream << v;
return *this;
}
};
class Log : public LogMessage
{
public:
Log() : LogMessage(LogLevel::Info) {}
};
class LogWarn : public LogMessage
{
public:
LogWarn() : LogMessage(LogLevel::Warn) {}
};
class LogError : public LogMessage
{
public:
LogError() : LogMessage(LogLevel::Error) {}
};
void initLogging();
void initLogging(const std::string& filename);
void setLogFile(const std::string& filename);
void setMaxLogLevel(LogLevel level);
LogLevel getMaxLogLevel();
double getElapsedTime();
} // namespace prt