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

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

Выберите минимальный уровень сообщений и единственное место вывода для стандартного журнала 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 не предоставляет настройку удалённого сервера журналов и переключатели категорий.