DtkCore
DTK Core module
|
AbstractStringAppender类为处理纯文本格式的Appender提供了一个方便的基础日志 更多...
Public 成员函数 | |
AbstractStringAppender () | |
构建一个新的字符串appender对象 | |
virtual QString | format () const |
返回当前使用的format字符串 更多... | |
void | setFormat (const QString &format) |
设置日志格式, 以便用这个appender向日志目标写入字符串。 更多... | |
![]() | |
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 |
![]() | |
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()
设置的格式来格式化日志参数。
关于自定义日志输出格式的更详细描述, 请参见setFormat()函数的文档
|
virtual |
返回当前使用的format字符串
默认记录格式为:"%{time}{yyyy-MM-ddTHH:mm:ss.zzz} [%{type:-7}] <%{function}> %{message}\n"
你可以使用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 | |
%% | 转译为单% 标记 |
|
static |
剥离长函数签名(由Q_FUNC_INFO宏添加)
字符串处理掉了函数的返回类型、参数和模板参数, 这对于提高日志输出的可读性是非常有用的
[in] | name | 函数名称 |