// 头文件#import <TDOS_Diagnose/TDOSLoggerProxy.h>// 初始化方式:@interface TDOSLogger : NSObject <TDLoggingIMPProtocol>/// 根据配置初始化日志SDK/// @param config 配置- (instancetype)initWithConfig:(TDOSLoggerConfig *)config;@end// 其中,TDOSLoggerConfig配置包含如下可选设置项:/// 日志目录@property (nonatomic, readonly) NSString *logPath;/// 默认日志级别,默认RAFTLogLevel_Error@property (nonatomic, readonly) RAFTLogLevel defaultLogLevel;/// 加密Key@property (nonatomic, readonly) NSString *publicKey;/// 控制台是否输出,默认关闭@property (nonatomic, assign) BOOL enableConsoleLog;/// 日志文件名前缀(可选设置)@property (nonatomic, copy) NSString *logFilePrefix;
RAFTLogLevelVerbose = 0,RAFTLogLevelDebug = 1,RAFTLogLevelInfo = 2,RAFTLogLevelWarn = 3,RAFTLogLevelError = 4,RAFTLogLevelFatal = 5,RAFTLogLevelNone = 6,
#define TDLogDebug(tag, format, ...)#define TDLogInfo(tag, format, ...)#define TDLogWarn(tag, format, ...)#define TDLogError(tag, format, ...)#define TDLogFatal(tag, format, ...)
/// 打印日志接口(不带格式化字符串)- (void)log:(RAFTLogLevel)leveltag:(NSString *)tagfile:(const char *)filefunc:(const char *)funcline:(int)linemsg:(NSString *)msg;/// 打印日志接口(带格式化字符串)- (void)log:(RAFTLogLevel)leveltag:(NSString *)tagfile:(const char *)filefunc:(const char *)funcline:(int)lineformat:(NSString *)format, ... __attribute__((format(__NSString__, 6, 7))) NS_REQUIRES_NIL_TERMINATION;/// 获取当前是否处于染色状态- (BOOL)isColorState;/// 重置染色级别- (void)resetColorLevel;/// 设置Log打印级别/// @param level 日志级别- (void)setLogLevel:(RAFTLogLevel)level;/// 设置打印log的特殊级别, 以及特殊级别的过期时间/// @param level 日志级别/// @param endtime 结束时间- (void)setLogLevel:(RAFTLogLevel)level endTimestamp:(time_t)endtime;/// 强制写入日志到文件/// @param isSync 是否同步写入- (void)flushLog:(BOOL)isSync;
/// 设置日志最大存留时间/// @param time 单位s,默认10(10*24*60*60)天- (void)setMaxLogAliveTime:(long)time;/// 设置总的日志文件大小,超出即清理(底层限制最小50M)/// @param maxSize 总文件大小,默认为0不限制- (void)setMaxTotalLogFileSize:(int64_t)maxSize;/// 设置控制台log输出/// @param enabled 是否开启- (void)setConsoleLogEnabled:(BOOL)enabled;
/// 获取日志列表(按小时打印)/// @param startTime 开始时间戳/// @param endTime 结束时间戳- (nullable NSArray<NSString *> *)getPeroidLogFilesWithStartTime:(NSTimeInterval)startTimeendTime:(NSTimeInterval)endTime;/// 获取日志列表,支持限定最大日志量/// (超过大小优先丢弃旧文件)////// @param startTime 开始时间戳/// @param endTime 结束时间戳/// @param sizeLimit 最大日志包- (nullable NSArray<NSString *> *)getPeroidLogFilesWithStartTime:(NSTimeInterval)startTimeendTime:(NSTimeInterval)endTimesizeLimit:(unsigned long long)sizeLimit;/// 获取日志文件夹路径。- (NSString *)getLogFolderPath;/// 获取日志加密公钥- (nullable NSString *)getLogEncryptPublicKey;
/// 主动拉取捞日志命令////// 调用场景:如收到Push消息时- (void)requestLogConfigFromServer;// 调用示例:#import <TDOS_Diagnose/TDOS_Diagnose.h>[TDLogSDK.sharedInstance requestLogConfigFromServer];
文档反馈