iOS — сохранить в файл журнала и извлечь позже

#ios #swift #logging #nslog

#iOS #swift #ведение журнала #nslog

Вопрос:

Итак, я пытаюсь сохранить файл журнала, а затем открыть его в моем офисе.

Я пробовал «Willow» и «CocoaLumberjack», но у меня ничего не вышло.

Я пробовал открыть консоль, но она показывает журналы только с момента подключения устройства к Mac. Также пробовал:

 NSLog("example")
  

и

 let customLog = OSLog(subsystem: "com.your_company.your_subsystem_name", category: "Category")
os_log("This is info that may be helpful during development or debugging.", log: customLog, type: .debug)
  

Я делаю что-то не так или есть другой способ?

Спасибо

Ответ №1:

Хорошо, мне удалось сделать это с помощью модуля «CocoaLumberjack».

Почти так же, как в документации.

Я создал файл, подобный этому:

 import Foundation
import CocoaLumberjack

func setupLogging() {
   DDLog.add(DDOSLogger.sharedInstance) // Uses os_log
   let fileLogger: DDFileLogger = DDFileLogger() // File Logger
   fileLogger.rollingFrequency = 60 * 60 * 24 // 24 hours
   fileLogger.logFileManager.maximumNumberOfLogFiles = 7
   DDLog.add(fileLogger)
}

func writeLog(message: String) {
   DDLogDebug(message)
}
  

В AppDelegate я сделал это:

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    setupLogging()
    return true
}
  

И затем везде, где я хотел записать журнал, я делал вот так:

 writeLog(message: "test")
  

После завершения мне пришлось извлечь журнал следующим образом:
windows -> устройства и симулятор -> выберите устройство -> выберите приложение -> прокрутите вниз до значка шестеренки -> загрузить контейнер -> затем показать содержимое пакета -> библиотека / кэши / журналы
🙂