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

Способы вывода

Выберите минимальный уровень сообщений и единственное место вывода для стандартного журнала AIBuds.

API Reference

Framework

AIBudsLog.xcframework

Declaration

Swift
/// The current log configuration.
static var logConfiguration: LogConfiguration { get }

/// Configures log storage, rotation, and output behavior.
final class LogConfiguration: NSObject {
    /// The severity threshold. Defaults to `.info`.
    var level: LogLevel

    /// The active output destination. Defaults to `.xlfacility`.
    var destination: LogDestination

    /// Relative log directory under Documents. Defaults to `.aibuds/logs`.
    var logsDirectory: String

    /// Maximum single file size. Defaults to 10 MB.
    var maxFileSize: UInt64

    /// Maximum retained age in days. Defaults to 3.
    var logFileMaxAge: Int
}

См. logConfiguration, LogLevel и LogDestination.

Уровни журналирования

level задаёт минимальную записываемую важность. Сообщения более низких уровней отбрасываются.

УровеньНазначение
.verboseПодробная трассировка выполнения.
.debugДиагностика во время разработки.
.infoОбычный ход работы и служебная информация.
.warnСостояние, которое может потребовать внимания.
.errorОшибка, после которой приложение может продолжить работу.
.fatalКритическая ошибка, способная завершить приложение.
.muteПолностью отключить вывод журналов.

Места вывода

МестоВыводЭкспорт
.consoleКонсоль отладчика XcodeНет
.osloggerЕдиная система журналирования Apple через os_logНет
.fileФайлы в настроенном каталоге относительно DocumentsДа
.xlfacilityПлагин хранения AIBudsXLFacilityДа, если плагин установлен

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

Swift
import AIBudsLog
import AIBudsXLFacility

let configuration = AIBudsLogSDK.logConfiguration
configuration.level = .debug
configuration.destination = .xlfacility
configuration.logFileMaxAge = 7

AIBudsLogSDK.setXLFacilityPlugin(XLFacilitySDK.shared)

AIBudsLogSDK.logService.info(
    "SDK configured",
    subsystem: "com.example.app",
    category: "startup"
)

Примечания

  • Место вывода задаётся для всего процесса и заменяет предыдущее; это не набор одновременно активных выходов.
  • logsDirectory принимает путь относительно Documents. SDK удаляет начальный символ косой черты.
  • Значения maxFileSize и logFileMaxAge, меньшие либо равные нулю, игнорируются.
  • Публичный SDK не предоставляет настройку удалённого сервера журналов и переключатели категорий.