Access to iOS system and crash logs

Usage no npm install needed!

<script type="module">
  import appiumIosLog from '';



NPM version Downloads Dependency Status devDependency Status

Build Status Coverage Status

Note: Issue tracking for this repo has been disabled. Please use the main Appium issue tracker instead.

Access to iOS system, crash, and performance logs.

On real devices, realtime system log capture is through libimobiledevice's idevicesyslog. If this is not installed, the system falls back to deviceconsole, which is bundled with the Appium server.


The appium-ios-log package exports three classes, IOSLog, IOSCrashLog, and IOSPerformanceLog.


Instantiated with an options hash with the following parameters:

  • sim - simulator object
  • udid - unique identifier of real device
  • showLogs - whether or not to output logs into the log stream. Defaults to false

One of sim or udid is needed. In the case of running against a simulator, sim, and against a real device, udid.


Instantiated with a directory in which the crash logs will be stored. Defaults to Library/Logs/DiagnosticReports in the home directory of the user under whom the device process is running.


Instantiated with an instance of appium-remote-debugger and an optional number, which is the maximum number of performance log events to be saved. Any log events over this limit will cause the oldest event to be dropped. Defaults to 5000.


All three classes, IOSLog, IOSCrashLog, and IOSPerformanceLog, provide four async methods:


Start log capture.


Stop log capture.


Retrieve the logs since the last time getLogs() was called.


Retrieve all the logs which have been captured.