Skip to content

Logging Output Methods

Mr.P edited this page Aug 29, 2026 · 2 revisions

Output Methods

Choose the minimum log level and the single destination used by the default AIBuds logger.

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
}

Objective-C

/// The current log configuration.
@property(nonatomic, class, readonly, strong) AIBudsLogConfiguration *logConfiguration;

/// Configures log storage, rotation, and output behavior.
@interface AIBudsLogConfiguration : NSObject
/// The severity threshold. Defaults to `AIBudsLogLevelInfo`.
@property(nonatomic) AIBudsLogLevel level;

/// The active output destination. Defaults to XLFacility.
@property(nonatomic) AIBudsLogDestination destination;

/// Relative log directory under Documents. Defaults to `.aibuds/logs`.
@property(nonatomic, copy) NSString *logsDirectory;

/// Maximum single file size. Defaults to 10 MB.
@property(nonatomic) uint64_t maxFileSize;

/// Maximum retained age in days. Defaults to 3.
@property(nonatomic) NSInteger logFileMaxAge;
@end

See logConfiguration, LogLevel, and LogDestination.

Log Levels

level is the minimum severity recorded. Levels below it are discarded.

Level Use
.verbose Fine-grained execution tracing.
.debug Development diagnostics.
.info Normal progress and operational information.
.warn A condition that may require attention.
.error A failure that may still allow the app to continue.
.fatal A critical failure that may terminate the app.
.mute Disable all log output.

Destinations

Destination Output Export support
.console Xcode debugger console No
.oslogger Apple unified logging through os_log No
.file Files under the configured Documents-relative directory Yes
.xlfacility AIBudsXLFacility persistence plugin Yes, when plugin is installed

Usage Examples

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"
)

Objective-C

#import <AIBudsLog/AIBudsLog-Swift.h>
#import <AIBudsXLFacility/AIBudsXLFacility-Swift.h>

AIBudsLogConfiguration *configuration = AIBudsLogSDK.logConfiguration;
configuration.level = AIBudsLogLevelDebug;
configuration.destination = AIBudsLogDestinationXlfacility;
configuration.logFileMaxAge = 7;

[AIBudsLogSDK setXLFacilityPlugin:AIBudsXLFacilitySDK.shared];

[AIBudsLogSDK.logService info:@"SDK configured" subsystem:@"com.example.app" category:@"startup"];

Notes

  • Destination selection is process-wide and replaces the previous destination; it is not a set of simultaneously enabled outputs.
  • logsDirectory accepts a Documents-relative path. A leading slash is removed by the SDK.
  • Values less than or equal to zero are ignored for maxFileSize and logFileMaxAge.
  • The public SDK does not expose remote-server logging configuration or category enable/disable switches.

AIBuds SDK iOS Wiki

Clone this wiki locally