Whether you are just starting your observability journey or already are an expert, our courses will help advance your knowledge and practical skills.
Expert insight, best practices and information on everything related to Observability issues, trends and solutions.
Explore our guides on a broad range of observability related topics.
This guide provides instructions for integrating the Coralogix RUM SDK into iOS applications for UIKit and SwiftUI projects. It also details the configuration options, logging functionalities, and best practices for using method swizzling and SwiftUI modifiers to monitor and analyze app performance and user interactions.
The SDK captures the following types of telemetry data:
URLSession
.NSException
, NSError
, and Error
.PLCrashReporter
.To add the Coralogix SDK to your project using Swift Package Manager:
git@github.com:coralogix/cx-ios-sdk
Ensure to call the SDK as early in your application lifecycle as possible, ideally in applicationDidFinishLaunching
in AppDelegate
.
import UIKit import CoralogixRum @main class AppDelegate: UIResponder, UIApplicationDelegate { var coralogixRum: CoralogixRum? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let options = CoralogixExporterOptions( coralogixDomain: CoralogixDomain, userContext: nil, environment: "ENVIRONMENT", application: "APP-NAME", version: "APP-VERSION", publicKey: "API-KEY", ignoreUrls: [], ignoreErrors: [], customDomainUrl: "", labels: ["String": Any], debug: false ) self.coralogixRum = CoralogixRum(options: options) return true } }
For SwiftUI projects (which don’t include AppDelegate
or SceneDelegate
files), you must create one to use Coralogix in your app.
import SwiftUI import CoralogixRum @main struct DemoAppApp: App { @State private var coralogixRum: CoralogixRum init() { let options = CoralogixExporterOptions( coralogixDomain: CoralogixDomain, userContext: nil, environment: "ENVIRONMENT", application: "APP-NAME", version: "APP-VERSION", publicKey: "TOKEN", ignoreUrls: [], ignoreErrors: [], customDomainUrl: "", labels: ["String": Any], debug: false ) self.coralogixRum = CoralogixRum(options: options) } var body: some Scene { WindowGroup { ContentView(coralogixRum: $coralogixRum) } } }
The CoralogixExporterOptions
struct provides configuration options for the Coralogix exporter.
Property | Type | Description | Required |
---|---|---|---|
userContext | UserContext? | Configuration for user context. | No |
debug | Bool | Turns on/off internal debug logging. | No |
ignoreUrls | [String]? | URLs that partially match any regex in ignoreUrls will not be traced. | No |
ignoreErrors | [String]? | A pattern for error messages which should not be sent to Coralogix. | No |
coralogixDomain | CoralogixDomain | Coralogix account https://coralogix.com/docs/coralogix-domain/ | Yes |
publicKey | String | Coralogix token, publicly-visible public_key value. This is a required property. | Yes |
environment | String | Specifies the environment, such as development, staging, or production. | Yes |
application | String | Name of the application | Yes |
version | String | Version of the application | Yes |
customDomainUrl | String? | Ignores CoralogixDomain URL and routes all data calls to a specific URL. | No |
labels | [String: Any]? | Sets labels that are added to every Span. | No |
Use this set of public functions to interact with the Coralogix exporter. These functions enable developers to perform various actions such as setting user context, defining labels, reporting errors, logging messages with specified severity levels, and shutting down the exporter.
Sets the user context.
public func setUserContext(userContext: UserContext)
Sets the labels.
public func setLabels(labels: [String: Any])
Reports an error to Coralogix.
public func reportError(exception: NSException) public func reportError(error: NSError) public func reportError(error: Error) public func reportError(message: String, data: [String: Any]?)
Logs a message to Coralogix with a specified severity and optional data.
public func log(severity: CoralogixLogSeverity, message: String, data: [String: Any]?)
Shuts down the Coralogix exporter and marks it as uninitialized.
public func shutdown()
The CoralogixLogSeverity
enum represents the different severity levels for logs in the Coralogix logging system.
Case | Raw Value | Severity |
---|---|---|
debug | 1 | Debug-level |
verbose | 2 | Verbose-level |
info | 3 | Informational |
warn | 4 | Warning-level |
error | 5 | Error-level |
critical | 6 | Critical-level |
coralogixRUM.logMessage(severity: .error, message: "An error occurred in the application.")
Dynamically alter the behavior of existing methods at runtime in Swift and Objective-C using these best practices:
Using CXViewModifier
and trackCXView
method, you can add custom behavior to views in a SwiftUI-friendly way.
import SwiftUI struct ContentView: View { var body: some View { Text("Hello, World!") .trackCXView(name: "ContentView") } }
Need help?
Our world-class customer success team is available 24/7 to walk you through your setup and answer any questions that may come up.
Feel free to contact us via our in-app chat or by emailing support@coralogix.com.