LogSystem beta 1.4
This is a logging system project
 
载入中...
搜索中...
未找到
Xulog::RollSinkBySize类 参考

基于文件大小的滚动文件日志落地实现 更多...

#include <sink.hpp>

类 Xulog::RollSinkBySize 继承关系图:
Xulog::RollSinkBySize 的协作图:

Public 成员函数

 RollSinkBySize (const std::string &basename, size_t max_size)
 构造函数
 
void log (const char *data, size_t len)
 日志写入到滚动文件
 
- Public 成员函数 继承自 Xulog::LogSink
 LogSink ()
 
virtual ~LogSink ()
 

Private 成员函数

std::string creatNewFIle ()
 创建新文件
 

Private 属性

std::string _basename
 基础文件名
 
std::ofstream _ofs
 文件输出流
 
size_t _max_fsize
 最大文件大小
 
size_t _current_fsize
 当前文件大小
 
size_t _cnt
 文件计数
 

额外继承的成员函数

- Public 类型 继承自 Xulog::LogSink
using ptr = std::shared_ptr< LogSink >
 智能指针类型
 

详细描述

基于文件大小的滚动文件日志落地实现

该类实现了将日志写入到文件,并在文件大小超过限制时创建新文件的功能。

构造及析构函数说明

◆ RollSinkBySize()

Xulog::RollSinkBySize::RollSinkBySize ( const std::string &  basename,
size_t  max_size 
)
inline

构造函数

参数
basename基础文件名
max_size最大文件大小

创建并打开新的日志文件。

函数调用图:

成员函数说明

◆ creatNewFIle()

std::string Xulog::RollSinkBySize::creatNewFIle ( )
inlineprivate

创建新文件

返回
std::string 新创建的文件路径

根据当前时间生成新文件名。

函数调用图:
这是这个函数的调用关系图:

◆ log()

void Xulog::RollSinkBySize::log ( const char *  data,
size_t  len 
)
inlinevirtual

日志写入到滚动文件

参数
data日志数据
len数据长度

将日志数据写入文件,如果当前文件大小超过限制,则创建新文件。

实现了 Xulog::LogSink.

函数调用图:

类成员变量说明

◆ _basename

std::string Xulog::RollSinkBySize::_basename
private

基础文件名

◆ _cnt

size_t Xulog::RollSinkBySize::_cnt
private

文件计数

◆ _current_fsize

size_t Xulog::RollSinkBySize::_current_fsize
private

当前文件大小

◆ _max_fsize

size_t Xulog::RollSinkBySize::_max_fsize
private

最大文件大小

◆ _ofs

std::ofstream Xulog::RollSinkBySize::_ofs
private

文件输出流