Glider is the logger for just about everything! It's designed to be:
Logging and monitoring are fundamental parts of our job as engineers.
Especially in the mobile world (with very heterogeneous environments), you'll often find yourself in a situation where understanding how your software behaves in production is essential.
That's the right job for logging: logged data provide valuable information that would be difficult to gather otherwise, unveil unexpected behaviors and bugs, and even if the data was adequately anonymized, identify the sequences of actions of singular users.
We loved making this open-source package and would see engineers like you using this software.
Those are five reasons you will love Glider:
Creating a logger is simple.
Each logger is an instance of the Log
class; typically, you need to specify one or more transports (where the data is stored).
let logger = Log {
$0.subsystem = "com.my-awesome-app"
$0.category = "ui-events"
$0.level = .info
$0.transports = [ConsoleTransport()]
}
The following logger shows received messages - only warning or more severe - in the console.
// Logs an error (including stack trace)
logger.error?.write("Unexpected error has occurred!",
extra: ["reason": error.localizedDescription, "info": extraInfoDict])
// Logs an event with a set of attached details
logger.info?.write {
$0.message = "User tapped Buy button"
$0.object = encodableProduct
$0.extra = ["price": price, "currency": currency]
$0.tags = ["productId", pID]
}
This the list of transport services officially supported.
Third party transports are available into the following separate repositories:
A separate transport is able to capture automatically every network request and forward to other transports:
Glider is fully documented at source-code level. You'll get autocomplete with doc inside XCode for free; moreover, you can read the full Apple's DoCC Documentation automatically generated by Swift Package Index project from here:
👉 API REFERENCE
👉 PROJECT PAGE
The following manual will guide you through using Glider for your project.
Glider offers an extensive suite of unit tests for Glider Core Logger and third-party packages under the /Tests
folder.
Moreover, the entire package is powered by SwiftLint for better code quality.
If you want to join this project, we're maintaining a list of new features we would like to implement into the following versions of Glider. Please open an issue and discuss one of them with us!
Glider can be installed on asrc="https://raw.github.com/immobiliare/Glider/main/atform which supports:
NOTE: The following transports require newer OSs versions (iOS 13+, tvOS 13+ and macOS 10.15+): RemoteTransportServer, RemoteTransportServerClient
Our preferred installation method is SPM but we're still support CocoaPods.
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. It is in early development, but Glider does support its use on supported platforms.
Once you have your Swift package set up, adding Glider as a dependency is as easy as adding it to the dependencies value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/immobiliare/Glider.git")
]
Manifest also includes third-party packages for other transports, like ELK or Sentry.
The Glider core SDK is the Glider
package.
CocoaPods is a dependency manager for Cocoa projects.
To integrate Glider into your project, specify it in your Podfile:
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
pod 'GliderLogger'
Glider was created by the amazing mobile team at ImmobiliareLabs, the Tech dept at Immobiliare.it. We are currently using Glider for logging in to all of our products.
If you are using Glider in your app drop us a message
Made with ❤️ by ImmobiliareLabs & Contributors
We'd love for you to contribute to Glider!
If you have questions on using Glider, bugs, and enhancement, please feel free to reach out by opening a GitHub Issue.
link |
Stars: 56 |
Last commit: 12 weeks ago |
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics