设置日志格式 - LogSetPattern
函数简介
设置日志的输出格式,支持多种占位符自定义日志样式。
接口名称
LogSetPattern
DLL调用
int32_t LogSetPattern(int64_t instance, int64_t loggerHandle, const char* logPattern)
参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| instance | int64_t | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成 |
| loggerHandle | int64_t | 日志实例句柄(0 表示默认实例) |
| logPattern | string | 日志格式(为空则使用默认格式) |
支持的占位符
时间日期:
%Y- 年份(4位数字,如 2026)%y- 年份(2位数字,如 26)%m- 月份(01-12)%d- 日期(01-31)%H- 小时(00-23,24小时制)%I- 小时(01-12,12小时制)%M- 分钟(00-59)%S- 秒(00-59)%e- 毫秒(000-999)%f- 微秒(000000-999999)%F- 纳秒(000000000-999999999)%p- AM/PM 标识%T- ISO 8601 时间格式(HH:MM:SS)
日志信息:
%v- 日志消息内容%l- 日志级别(TRACE, DEBUG, INFO, WARN, ERROR, CRITICAL)%L- 日志级别简写(T, D, I, W, E, C)%n- 日志记录器名称%t- 线程ID%P- 进程ID
源代码信息:
%s- 源文件名%g- 源文件短名称(不含路径)%#- 源代码行号%!- 函数名
颜色控制:
%^- 颜色范围开始标记%$- 颜色范围结束标记
示例
// 默认格式
LogSetPattern(instance, 0, "[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] %v");
// 输出:[2026-03-02 14:30:45.123] [INFO] 日志消息
// 简洁格式
LogSetPattern(instance, 0, "[%T.%e] [%L] %v");
// 输出:[14:30:45.123] [I] 日志消息
// 包含线程ID
LogSetPattern(instance, 0, "[%Y-%m-%d %H:%M:%S.%e] [%t] [%^%l%$] %v");
// 输出:[2026-03-02 14:30:45.123] [12345] [INFO] 日志消息
// 包含源代码信息
LogSetPattern(instance, 0, "[%T] [%l] [%g:%#] %v");
// 输出:[14:30:45] [INFO] [main.cpp:42] 日志消息
// 紧凑格式
LogSetPattern(instance, 0, "%Y%m%d %H:%M:%S [%l] %v");
// 输出:20260302 14:30:45 [INFO] 日志消息
// 详细格式
LogSetPattern(instance, 0, "[%Y-%m-%d %H:%M:%S.%e] [%P:%t] [%^%l%$] [%g:%#] %v");
// 输出:[2026-03-02 14:30:45.123] [1234:5678] [INFO] [main.cpp:42] 日志消息
返回值
| 返回值 | 说明 |
|---|---|
| 0 | 失败 |
| 1 | 成功 |
注意事项
- 默认格式:
[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] %v - 修改后立即生效,如果日志系统已初始化,会自动重新初始化
%^和%$用于控制颜色范围,仅在控制台输出时有效- 占位符区分大小写
- 格式字符串基于 spdlog 库的格式规范
