提问人:Piepants 提问时间:9/17/2023 更新时间:9/17/2023 访问量:12
您可以在运行时将 CocoaLumberJack 日志记录从异步切换到同步吗?还是强制刷新待处理的写入?
Can you switch CocoaLumberJack logging from asynchronous to synchronous at run time? Or force a flush of pending writes?
问:
我正在使用 CocoaLumberJack 写入日志记录文件,如果应用程序在运行时检测到意外情况,我希望能够附加文件/和/或其内容以在执行期间上传以供分析。
在这种情况下,我希望日志是最新的,并包含可能在几微秒之前写入的所有日志记录。
即给定以下代码:
DDLogWarn(@"%@", @"Want this line to appear in the file");
if ([[NSFileManager defaultManager] fileExistsAtPath:logthLocation.path]) {
NSError* error = nil;
NSStringEncoding encoding = 0;
NSString *contents = [[NSString alloc] initWithContentsOfURL:logURL
usedEncoding:&encoding
error:&error];
然后,内容字符串将不包含刚才编写的行。
异步/同步写入性质可以在编译时通过设置为 YES 或 NO 来设置#define LOG_ASYNC_ENABLED
但是,为了提高效率,我希望日志记录默认是异步的,但能够在打开文件之前刷新任何待处理的写入。 这可能吗?
答:
0赞
Piepants
9/17/2023
#1
[DDLog flushLog] 似乎可以完成这项工作
评论