objective-c - 是否可以将 os_log 消息存储到文本文件中?或者是否可以使用方法调配来观察 os_log() 函数调用?
问题描述
我有两个用 Objective-c 编写的 iOS 应用程序。对于其中一个应用程序,我使用自己的日志记录功能。我将日志存储在本地数据库中,并将日志消息发送到服务器以调试和检查应用程序的性能。
在另一个应用程序中,我使用 os_log 进行日志记录。在大多数地方,我使用以下行来记录事件。os_log(OS_LOG_DEFAULT, "日志信息在这里");
现在我想将这些日志存储到本地数据库并将其发送到我的服务器。是否有可能做到这一点?
我在一些文章中读到我们可以使用方法调配来记录事件。是否可以在这里使用方法调配。如果没有,有没有办法将 os_log 消息保存到本地数据库。
解决方案
您可以定义一个新的宏来调用 os_log 和保存方法
#define my_log(p1, p2) [MyLog logWithParam:p1 p2:p2]
@interface MyLog : NSObject
+(void)logWithParam:(NSString*)p1 p2:(NSString*)p2;
@end
@implementation MyLog
+(void)logWithParam:(NSString*)p1 p2:(NSString*)p2{
os_log(p1, p2);
[self saveLogToLocalFile];
}
@end