DtkCore
DTK Core module
Dtk::Core::AbstractStringAppender类 参考

AbstractStringAppender类为处理纯文本格式的Appender提供了一个方便的基础日志 更多...

类 Dtk::Core::AbstractStringAppender 继承关系图:
Dtk::Core::AbstractAppender Dtk::Core::ConsoleAppender Dtk::Core::FileAppender Dtk::Core::OutputDebugAppender Dtk::Core::RollingFileAppender

Public 成员函数

 AbstractStringAppender ()
 构建一个新的字符串appender对象
 
virtual QString format () const
 返回当前使用的format字符串 更多...
 
void setFormat (const QString &format)
 设置日志格式, 以便用这个appender向日志目标写入字符串。 更多...
 
- Public 成员函数 继承自 Dtk::Core::AbstractAppender
 AbstractAppender ()
 AbstractAppender构造函数
 
virtual ~AbstractAppender ()
 AbstractAppender析构函数
 
Logger::LogLevel detailsLevel () const
 返回appender的当前日志级别 更多...
 
void setDetailsLevel (Logger::LogLevel level)
 设置当前appender的记录级别,默认记录级别为Logger::Debug 更多...
 
void setDetailsLevel (const QString &level)
 设置当前appender的记录级别,这个函数是为了简化输入而提供的,它的行为与同名函数类似。 更多...
 
void write (const QDateTime &time, Logger::LogLevel level, const char *file, int line, const char *func, const QString &category, const QString &msg)
 尝试写入日志,这是由Logger对象调用的函数,用于向appender写入日志信息 更多...
 

静态 Public 成员函数

static QString stripFunctionName (const char *name)
 剥离长函数签名(由Q_FUNC_INFO宏添加) 更多...
 

Protected 成员函数

QString formattedString (const QDateTime &time, Logger::LogLevel level, const char *file, int line, const char *func, const QString &category, const QString &msg) const
 
- Protected 成员函数 继承自 Dtk::Core::AbstractAppender
virtual void append (const QDateTime &time, Logger::LogLevel level, const char *file, int line, const char *func, const QString &category, const QString &msg)=0
 

详细描述

AbstractStringAppender类为处理纯文本格式的Appender提供了一个方便的基础日志

AbstractSringAppender是AbstractAppender类的简单扩展, 它提供了一种方便的方式来创建自定义日志应用程序, 该程序使用纯文本格式的日志 它有formattedString()保护类型(不可直接被调用)函数, 可以根据setFormat()设置的格式来格式化日志参数。

注解
这个类不能直接实例化, 因为它包含从AbstractAppender类继承的纯虚拟函数。

关于自定义日志输出格式的更详细描述, 请参见setFormat()函数的文档

参见
AbstractStringAppender::setFormat()

成员函数说明

◆ format()

QString Dtk::Core::AbstractStringAppender::format ( ) const
virtual

返回当前使用的format字符串

默认记录格式为:"%{time}{yyyy-MM-ddTHH:mm:ss.zzz} [%{type:-7}] <%{function}> %{message}\n" 你可以使用setFormat()函数来设置不同的日志记录格式。

参见
AbstractStringAppender::setFormat()
返回
返回当前使用的format字符串

Dtk::Core::ConsoleAppender 重载.

◆ setFormat()

void Dtk::Core::AbstractStringAppender::setFormat ( const QString &  format)

设置日志格式, 以便用这个appender向日志目标写入字符串。

对于那些使用过标准sprintf函数的开发者来说, 字符串格式非常常见。 日志输出格式是一个简单的QString, 带有特殊的标记(以符号开始), 在写日志记录时将被替换成它的内部含义。 控制标记以百分号(%)开始, 后面是{}括号内的命令(该命令描述了将被放入日志记录而不是标记的内容)。 可选的字段宽度参数可以在命令后直接指定(通过括号内的冒号), 有些命令需要一个额外的格式化参数(在第二个{}括号内) 字段宽度参数的工作原理与QString::arg()fieldWidth参数几乎相同(并在内部使用它), 例如, "%{type:-7}"将被替换为消息的左边填充的调试级别("Debug")或其他东西。关于它的更详细的描述, 你可以考虑看一下Qt参考文档。

支持的标记:

标记 含义 备注
%{time} 时间戳。你可以使用标记后的第二个{}括号来指定你的自定义时间戳格式。默认格式:"HH:mm:ss.zzz" "%{time}{dd-MM-yyyy, HH:mm}"可能被替换为 "20-9-2022, 21:24", 这取决于当前的日期和时间。
%{type} 日志级别。可能的日志级别在Logger::LogLevel枚举中显示。
%{Type} 大写的日志级别
%{typeOne} 一个字母的日志级别
%{TypeOne} 一个大写字母的日志级别
%{File} 记录日志的文件的完整源文件名(含路径), 使用 __FILE__预处理程序宏
%{file} 简短的文件名(去除路径后的文件名)
%{line} 源文件中的行数。使用__LINE__预处理程序宏。
%{Function} 调用LOG_*宏的函数的名称。使用Qt提供的Q_FUNC_INFO宏。
%{function} 类似于%{Function}, 但使用 stripFunctionName 剥离了函数名。
%{message} 日志内容
%{category} 日志类别
%{appname} 应用程序名称(由QCoreApplication::applicationName()函数返回)
%{pid} 应用程序的pid(由QCoreApplication::applicationPid()函数返回)
%{threadid} 线程ID
%% 转译为单%标记

◆ stripFunctionName()

static QString Dtk::Core::AbstractStringAppender::stripFunctionName ( const char *  name)
static

剥离长函数签名(由Q_FUNC_INFO宏添加)

字符串处理掉了函数的返回类型、参数和模板参数, 这对于提高日志输出的可读性是非常有用的

参数
[in]name函数名称
返回
剥离的函数名称

该类的文档由以下文件生成: