# Log日志管理
SDK中的Log日志管理分两块:控制台输出、写入日志文件。
而Log日志管理相关的Api,都是通过[FATClient sharedClient].logManager
来调用的。
# 1. Log日志初始化配置
API
/// 初始化并开启日志记录
/// @param logDir 日志文件存储路径,默认路径为 沙盒Document/finclip_log(除了日志文件不要把其他文件放入该目录,不然可能会被日志系统清理掉)
/// @param logLevel 日志记录等级(Debug版本推荐 FATLogLevelDebug, Release 版本推荐 FATLogLevelInfo)
/// @param isConsoleLog 是否开启控制台输出日志(Debug版本推荐开启, Release 版本推荐关闭)
- (void)initLogWithLogDir:(NSString *)logDir logLevel:(FATLogLevel)logLevel consoleLog:(BOOL)isConsoleLog;
示例代码:
NSArray *patchs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [patchs objectAtIndex:0];
NSString *logDir = [documentsDirectory stringByAppendingPathComponent:@"ABC_FinClip_LogFiles"];
[[FATClient sharedClient].logManager initLogWithLogDir:logDir logLevel:FATLogLevelWarning consoleLog:YES];
# 2. 内存日志立即同步至文件
为了避免频繁的文件写入,日志信息会以MMAP形式存在于磁盘缓存中,并在合适的时机写入日志文件
/// 把内存中的日志立即写入到日志文件
/// 一般在需要导出日志文件时调用,将最新的日志更新到日志文件中。
/// 如果不调用这些日志也不会丢失,日志会以MMAP形式存在于磁盘缓存中,并在合适的时机写入日志文件
/// @param isAsync 是否异步写入(建议异步,否则可能导致卡顿)
- (void)flushLog:(BOOL)isAsync;
# 3. 设置日志文件保留时间
/// 设置日志文件保留时间(默认10天,至少为1天)
/// @param duration 保留时间,单位为秒
- (void)setLogFileAliveDuration:(NSUInteger)duration;
# 4. 关闭日志
/// 关闭日志,在程序退出时调用(比如applicationWillTerminate:)。
- (void)closeLog;
# 5. 日志输出的代理事件
宿主App可通过实现日志输出的代理来获取日志或性能统计数据。
日志代理以及示例代码见:logDelegate