33 lines
767 B
Markdown
33 lines
767 B
Markdown
|
|
# ILogSink::Flush
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
virtual void Flush() = 0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
刷新输出缓冲区,确保所有待写入的日志数据已实际写入目标介质。对于文件类 Sink,应调用底层文件系统的 flush;对于网络类 Sink,应发送缓冲区中的数据。
|
|||
|
|
|
|||
|
|
**复杂度:** O(1)
|
|||
|
|
|
|||
|
|
**示例:**
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
class BufferedLogSink : public XCEngine::Debug::ILogSink {
|
|||
|
|
private:
|
|||
|
|
std::string m_buffer;
|
|||
|
|
public:
|
|||
|
|
void Log(const XCEngine::Debug::LogEntry& entry) override {
|
|||
|
|
m_buffer += entry.message.CStr();
|
|||
|
|
m_buffer += "\n";
|
|||
|
|
}
|
|||
|
|
void Flush() override {
|
|||
|
|
// 将缓冲区数据写入目标
|
|||
|
|
writeToDestination(m_buffer);
|
|||
|
|
m_buffer.clear();
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
|
|||
|
|
- [ILogSink 总览](ilogsink.md) - 返回类总览
|