CXoneGuideUtility is a robust logging framework designed for iOS applications, providing flexible and powerful logging capabilities through a clean, type-safe interface.
- iOS 15.0+
- Swift 5+
## Modules
The foundation of the logging system that defines the basic logging behavior:
public protocol LogWriter {
func log(record: LogRecord)
}Console output logging:
let writer = PrintLogWriter()File-based logging:
let writer = FileLogWriter(path: fileURL)System logging using os.Logger:
let writer = SystemLogWriter()Multi-destination logging:
let writer = ForkLogWriter(
FileLogWriter(path: fileURL),
PrintLogWriter()
)Control log output:
// Level-based filtering
logWriter.filter(minLevel: .warning)
// Category-based filtering
logWriter.filter(categories: "NETWORK")Control log appearance:
logWriter.format(.simple)
logWriter.format(.full)enum Log: StaticLogger {
nonisolated(unsafe) static var instance: LogWriter = PrintLogWriter()
static let category: String? = "Application"
}Log.configure(
format: .full,
isPrintEnabled: true,
isWriteToFileEnabled: true,
isCrashlyticsEnabled: true,
isSystemEnabled: true
)Log.trace("Debug message")
Log.warning("Warning message")
Log.error("Error message")Log.log("Network request started", category: "NETWORK")Log.instance = ForkLogWriter(
FileLogWriter(path: fileURL).format(.full),
PrintLogWriter().format(.simple)
).filter(minLevel: .warning)let shareDialog = try Log.getLogShareDialog()try Log.removeLogs()The logger automatically integrates with:
- CXoneChat
- CXoneChatUI
- Configure appropriate log levels for different environments
- Use categories for better log organization
- Implement proper error handling
- Regular log file maintenance