如何解决在 Notification Service Extension 中添加日志记录和检索日志
我关注了这篇文章 https://github.com/CocoaLumberjack/CocoaLumberjack/issues/439 并且我能够在我的服务扩展类中完成日志记录。这就是我所做的 -
import CocoaLumberJackSwift
override func didReceive(_ request: UNNotificationRequest,withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
let fileManager = FileManager.default
let appGroupId = Bundle.main.infoDictionary?["APP_GROUP_ID"] as! String
let containerURL = fileManager.containerURL(forSecurityApplicationGroupIdentifier: appGroupId)
let extensionLogDirectory = containerURL?.appendingPathComponent("AppExtensionLogs").path
let logFileManager = DDLogFileManagerDefault.init(logsDirectory: extensionLogDirectory)
let fileLogger: DDFileLogger = DDFileLogger.init(logFileManager: logFileManager)
fileLogger.rollingFrequency = 0
fileLogger.maximumFileSize = 1 * 1024 * 1024
fileLogger.logFileManager.maximumNumberOfLogFiles = 2
DDLog.add(fileLogger)
}
然后使用 DDLogDebug 消息,我可以看到日志记录在此处某处创建的 1 个文件中 -
/private/var/mobile/Containers/Shared/AppGroup/1FF0E277-6CBF-4139-8535-AD18B9CFC164/AppExtensionLogs/
现在有一些关于这个的观察 -
- 有时我看到日志被切断,打印两次,这有点令人困惑。
- 有时即使创建了日志文件,但我在其中看不到任何日志。
这是我用来检索日志的方法 -
Nsstring *appGroupId = [NSBundle mainBundle].infoDictionary[@"APP_GROUP_ID"];
NSURL *containerPathURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:appGroupId];
Nsstring* extensionLogDirectory = [[containerPathURL URLByAppendingPathComponent:(@"AppExtensionLogs")] path];
NSArray *directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:extensionLogDirectory error:nil];
AFDebug(@"Logging Started");
for (Nsstring* file in directoryContents) {
Nsstring *path = [extensionLogDirectory stringByAppendingPathComponent:file];
Nsstring *fileContents = [Nsstring stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
AFDebug(@"File contents of %@ \n%@",path,fileContents);
}
NSLog(@"Logging Stopped");
有人可以帮我吗??有什么我做错了吗?谢谢!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。