设置日志文件的分割模式,支持按大小、按日期、按小时等多种方式分割日志文件。
int32_t LogSetRotationMode(int64_t instance, int64_t loggerHandle, int32_t rotationMode)
| 参数名 | 类型 | 说明 |
|---|
| instance | int64_t | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成 |
| loggerHandle | int64_t | 日志实例句柄(0 表示默认实例) |
| rotationMode | int32_t | 分割模式(可位或组合),见 LogRotationMode 枚举 |
| 枚举值 | 值 | 说明 |
|---|
| OLA_LOG_ROTATION_NONE | 0 | 不分割(单文件,不推荐) |
| OLA_LOG_ROTATION_SIZE | 1<<0 | 按大小分割(默认启用) |
| OLA_LOG_ROTATION_DAILY | 1<<1 | 每日分割 |
| OLA_LOG_ROTATION_HOURLY | 1<<2 | 每小时分割 |
int result = LogSetRotationMode(instance, 0, OLA_LOG_ROTATION_NONE);
int result = LogSetRotationMode(instance, 0, OLA_LOG_ROTATION_SIZE);
int result = LogSetRotationMode(instance, 0, OLA_LOG_ROTATION_DAILY);
int result = LogSetRotationMode(instance, 0, OLA_LOG_ROTATION_HOURLY);
int result = LogSetRotationMode(instance, 0, OLA_LOG_ROTATION_SIZE | OLA_LOG_ROTATION_DAILY);
int result = LogSetRotationMode(instance, 0, OLA_LOG_ROTATION_SIZE | OLA_LOG_ROTATION_HOURLY);
LogSetFileNamePattern(instance, 0, "app_{date}_{index}.log");
LogSetRotationMode(instance, 0, OLA_LOG_ROTATION_SIZE | OLA_LOG_ROTATION_DAILY);
- 默认值:
OLA_LOG_ROTATION_SIZE (1) - 仅按大小分割 - 可以使用位或运算(
|)组合多种模式 - 按大小分割的阈值通过
LogSetMaxFileSize 设置(默认 100MB) - 分割后的旧文件数量通过
LogSetMaxFiles 控制(默认保留 10 个) - 修改后立即生效,如果日志系统已初始化,会自动重新初始化
- 不推荐使用
OLA_LOG_ROTATION_NONE,可能导致日志文件过大 - 组合使用时,满足任一条件都会触发分割