ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::logfile Struct Referenceabstract

文件日志基类。 More...

#include <logprintf.h>

Inheritance diagram for ngl::logfile:
ngl::logfile_bi ngl::logfile_default

Classes

struct  config
 日志文件配置结构体。 More...

Public Member Functions

 logfile (const config &aconfig)
 构造函数。
bool flush_count () const
 检查当前文件是否应该轮转。
void close_fstream ()
 关闭当前文件流。
bool create_dir (const std::string &apath)
 确保目标目录存在。
void create ()
 构建目录树并打开新的日志文件。
virtual void printf (const np_logitem *alog)=0
 将一条格式化的日志项写入目标文件。
void flush ()
 显式刷新当前文件流。

Static Public Member Functions

static std::shared_ptr< logfilecreate_make (const config &aconfig)
 根据日志类型创建具体的文件格式化器。

Public Attributes

std::ofstream m_stream
 日志文件输出流
config m_config
 不可变的文件配置
int m_count = 0
 写入当前文件的记录数
int m_fcount = 0
 同一天/时间段的文件序号

Detailed Description

文件日志基类。

管理日志文件的创建、写入和轮转。支持按记录数或时间间隔触发轮转。 通过工厂方法create_make()根据日志类型创建具体的文件格式化器。

Constructor & Destructor Documentation

◆ logfile()

ngl::logfile::logfile ( const config & aconfig)

构造函数。

logfile构造函数

Parameters
aconfig日志文件配置

Member Function Documentation

◆ close_fstream()

void ngl::logfile::close_fstream ( )

关闭当前文件流。

关闭当前日志文件流

在创建下一个轮转文件前调用。

◆ create()

void ngl::logfile::create ( )

构建目录树并打开新的日志文件。

创建新的日志文件

按目录结构(根目录/服务器名/日志类型/日期/时间.log)创建日志文件

◆ create_dir()

bool ngl::logfile::create_dir ( const std::string & apath)

确保目标目录存在。

确保目录存在,不存在则创建

Parameters
apath目录路径
Returns
true 目录存在或创建成功
false 目录创建失败
Parameters
apath目录路径
Return values
true目录已存在或创建成功
false创建失败

◆ create_make()

std::shared_ptr< logfile > ngl::logfile::create_make ( const config & aconfig)
static

根据日志类型创建具体的文件格式化器。

工厂方法:根据配置创建日志文件实例

Parameters
aconfig日志文件配置
Returns
std::shared_ptr<logfile> 文件日志实例
Parameters
aconfig日志文件配置
Returns
logfile子类的共享指针

◆ flush()

void ngl::logfile::flush ( )

显式刷新当前文件流。

刷新日志文件流

◆ flush_count()

bool ngl::logfile::flush_count ( ) const

检查当前文件是否应该轮转。

检查是否达到日志轮转行数阈值

Returns
true 应该轮转
false 不需要轮转
Return values
true达到阈值,需要轮转
false未达到阈值

◆ printf()

virtual void ngl::logfile::printf ( const np_logitem * alog)
pure virtual

将一条格式化的日志项写入目标文件。

Parameters
alog日志条目指针
Note
纯虚函数,由派生类实现具体的格式化逻辑。

Implemented in ngl::logfile_bi, and ngl::logfile_default.


The documentation for this struct was generated from the following files: