BIMHome v1.0.0
BIMHome接口文档说明
ConsoleObserver.h
浏览该文件的文档.
1/************************************************************************
2* @file ConsoleObserver.h
3*
4* @brief 日志观察者类
5*
6* @details 日志观察者类
7*
8* @author wukx
9*
10* @version v1.0
11*
12* @date 2016.9.29
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef BIMHOMEBASE_CONSOLEOBSERVER_H
19#define BIMHOMEBASE_CONSOLEOBSERVER_H
20
21#include <Base/Console.h>
22#include <Base/Stream.h>
23
24namespace Base
25{
26
27 //=========================================================================
33 class BaseExport ConsoleObserverFile : public ILogger
34 {
35 public:
41 ConsoleObserverFile(const char* sFileName);
53 void SendLog(const std::string& message, LogStyle level) override;
59 const char* Name(void) override { return "File"; }
60
61 protected:
62 Base::ofstream cFileStream;
63 };
64
71 class BaseExport ConsoleObserverStd : public ILogger
72 {
73 public:
74
77
84 void SendLog(const std::string& message, LogStyle level) override;
85
91 const char* Name(void) override { return "Console"; }
92
93 private:
99 void Warning(const char* sWarn);
105 void Message(const char* sMsg);
111 void Error(const char* sErr);
117 void Log(const char* sErr);
118
119 protected:
121 };
122
128 class BaseExport RedirectStdOutput : public std::streambuf
129 {
130 public:
132
133 protected:
140 int overflow(int c = EOF);
146 int sync();
147
148 private:
149 std::string buffer;
150 };
151
157 class BaseExport RedirectStdError : public std::streambuf
158 {
159 public:
161
162 protected:
169 int overflow(int c = EOF);
170
176 int sync();
177
178 private:
179 std::string buffer;
180 };
181
187 class BaseExport RedirectStdLog : public std::streambuf
188 {
189 public:
191
192 protected:
199 int overflow(int c = EOF);
205 int sync();
206
207 private:
208 std::string buffer;
209 };
210
211
212} // namespace Base
213
214#endif // BIMHOMEBASE_CONSOLEOBSERVER_H
~ConsoleObserverFile() override
析构函数
ConsoleObserverFile(const char *sFileName)
构造函数
const char * Name(void) override
获取观察者名称
Definition ConsoleObserver.h:59
void SendLog(const std::string &message, LogStyle level) override
发送日志消息
Base::ofstream cFileStream
文件流对象,用于写入日志文件
Definition ConsoleObserver.h:62
日志文件观察者类
Definition ConsoleObserver.h:34
~ConsoleObserverStd() override
void Message(const char *sMsg)
打印普通消息
const char * Name(void) override
获取观察者名称
Definition ConsoleObserver.h:91
void Error(const char *sErr)
打印错误消息
void Warning(const char *sWarn)
打印警告消息
void SendLog(const std::string &message, LogStyle level) override
发送日志消息
void Log(const char *sErr)
打印日志消息
bool useColorStderr
是否在标准错误输出中使用颜色
Definition ConsoleObserver.h:120
标准控制台观察者类
Definition ConsoleObserver.h:72
日志接口类
Definition Console.h:427
int sync()
同步缓冲区
std::string buffer
用于存储重定向错误的缓冲区
Definition ConsoleObserver.h:179
int overflow(int c=EOF)
处理字符溢出
标准错误重定向类
Definition ConsoleObserver.h:158
int sync()
同步缓冲区
std::string buffer
用于存储重定向日志的缓冲区
Definition ConsoleObserver.h:208
int overflow(int c=EOF)
处理字符溢出
日志输出重定向类
Definition ConsoleObserver.h:188
int sync()
同步缓冲区
std::string buffer
用于存储重定向输出的缓冲区
Definition ConsoleObserver.h:149
int overflow(int c=EOF)
处理字符溢出
标准输出重定向类
Definition ConsoleObserver.h:129
LogStyle
用于标识日志级别
Definition Console.h:412
Definition BaseFigureFactory.h:24