首页 > 解决方案 > 是否可以将 os_log 消息存储到文本文件中?或者是否可以使用方法调配来观察 os_log() 函数调用?

问题描述

我有两个用 Objective-c 编写的 iOS 应用程序。对于其中一个应用程序,我使用自己的日志记录功能。我将日志存储在本地数据库中,并将日志消息发送到服务器以调试和检查应用程序的性能。

在另一个应用程序中,我使用 os_log 进行日志记录。在大多数地方,我使用以下行来记录事件。os_log(OS_LOG_DEFAULT, "日志信息在这里");

现在我想将这些日志存储到本地数据库并将其发送到我的服务器。是否有可能做到这一点?

我在一些文章中读到我们可以使用方法调配来记录事件。是否可以在这里使用方法调配。如果没有,有没有办法将 os_log 消息保存到本地数据库。

标签: objective-cswift

解决方案


您可以定义一个新的宏来调用 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

推荐阅读