Перейти к основному содержимому

Удаление устаревших журналов

Удаляйте сохранённые журналы старше указанного числа дней или созданные до заданной даты.

Предварительные условия

  • Активный сервис журналирования использует постоянное хранилище.
  • При удалении по возрасту значение maxAge больше нуля.

API Reference

Framework

AIBudsLog.xcframework

Declaration

Swift
/// Purges log messages older than the specified maximum age.
/// - Parameters:
///   - maxAge: Retention age in days.
///   - completion: Called with an error, or `nil` on success.
func purgeOldLogsWithMaxAge(_ maxAge: Int, completion: ((_ error: NSError?) -> Void)?)

/// Purges log messages earlier than the specified timestamp.
/// - Parameters:
///   - timestamp: The exclusive cutoff date for retained logs.
///   - completion: Called with an error, or `nil` on success.
func purgeOldLogsBefore(_ timestamp: Date, completion: ((_ error: NSError?) -> Void)?)

См. purgeOldLogsWithMaxAge и purgeOldLogsBefore.

Примеры использования

Swift
let retentionDays = 7

AIBudsLogSDK.logService.purgeOldLogsWithMaxAge(retentionDays) { error in
    DispatchQueue.main.async {
        if let error {
            statusLabel.text = "Cleanup failed: \(error.localizedDescription)"
            return
        }
        statusLabel.text = "Logs older than \(retentionDays) days were deleted"
    }
}

Удаление по заданной граничной дате:

Swift
let cutoff = Calendar.current.date(byAdding: .day, value: -7, to: Date())!
AIBudsLogSDK.logService.purgeOldLogsBefore(cutoff) { error in
    if let error { print(error.localizedDescription) }
}

Примечания

  • При загрузке плагина AIBudsLogSDK.setXLFacilityPlugin(_:) автоматически удаляет журналы XLFacility согласно текущему logFileMaxAge.
  • Изменение logFileMaxAge настраивает срок хранения, но не запускает очистку немедленно. Для немедленного удаления вызовите метод очистки.
  • Очистка затрагивает сохранённые данные активного сервиса. Вывод консоли и OS Logger не относится к хранилищам, которыми управляет приложение.
  • Определяйте результат по completion callback, а не предполагайте, что фоновая очистка завершилась успешно.