EventBottle
In app event log recorder/viewer for debugging.
Usage
Event recording
You can record events to use built-in EventBottleFileEventDataStore
.
let eventDataStore = EventBottleFileEventDataStore.shared
eventDataStore.putEvent("event1", labels: ["activity", "test"])
eventDataStore.putEvent(["event": "event2", "count": 42], labels: ["activity", "test", "count"])
Show recorded events
Create EventBottleViewController
instance and present it.
If you want to look filtered events, input keyword (Partial Match) or label (Exact Match) to search field.
Custom EventDataSource and EventDataStore
EventDataSource
The EventDataSource
is data source of events for event log viewer.
The role of EventDataSource
is produce some Event
structs from File, DB, or other sources.
struct Event {
let date: Date
let labels: [String]
let body: String
}
You can create custom event data sources using EventDataSource
protocol.
If you know data structure of data sources and convert log to Event
structure, you can show these events on EventBottleViewController
.
let eventDataSource = CustomEventDataSource()
let viewController = EventBottleViewController(eventDataSource: eventDataSource)
present(viewController, animated: true) // in your application's secret!
EventDataStore
The EventDataStore
is data store of your application event logs.
The role of EventDataStore
is provide interface for storing events and store event logs to File, DB or other data stores.
You can create custom event data store using EventDataStore
protocol.
Requirements
- iOS 10+
- Swift 5
Installation
Carthage
github "slightair/EventBottle"
CocoaPods
pod 'EventBottle'
Author
Tomohiro Moro, [email protected]
License
EventBottle is available under the MIT license. See the LICENSE file for more info.