immobiliare/glider
**Glider is the logger for just about everything!**
Transports
This the list of transport services officially supported. Third party transports are available into the following separate repositories:
- Glider-ELK: library provides a logging transport for glider and ELK stacks.
- Glider-Sentry: provides support to post log on sentry.io instances using the native swift sdk.
- Glider-AppleSwiftLog can also work as a backend for apple/swift-log.
A separate transport is able to capture automatically every network request and forward to other transports:
- Glider-NetWatcher offers the ability to capture your app's network traffic (including requests/responses) and redirect them to a specific transport.
<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="./Documentation/assets/transports-list-dark.png" width="840"> <img alt="logo-library" src="./Documentation/assets/transports-list-light.png" width="840"> </picture> </p>
APIs
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
Guide
The following manual will guide you through using Glider for your project.
Introduction
- Writing simple messages - Writing messages using closures - Writing message by passing Event
Event Formatters
- FieldsFormatter - JSONFormatter - MsgPackDataFormatter
- TableFormatter - TerminalFormatter - XCodeFormatter - SysLogFormatter
Data Transports
- Introduction - Base Transports - AsyncTransport - BufferedTransport - ThrottledTransport
- ConsoleTransport - OSLogTransport - POSIXStreamTransport - FileTransport - SizeRotationFileTransport - HTTPTransport - RemoteTransport - RemoteTransportServer - SQLiteTransport - WebSocketTransport - WebSocketTransportClient - WebSocketTransportServer
Test Suite
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.
Contribute
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!
- [ ] GliderViewer: a macOS, iPad & iPhone app to view and interact with logged data
- [ ] New Transports: we would like to extend the list of supported transports; feel free to propose your third-party transports
- [ ] Increment our code coverage by writing more tests
Requirements
Glider can be installed on any platform which supports:
- Swift 5.0
- iOS 10, macOS 10.14, macCatalyst, tvOS 13
- Xcode 13.2
NOTE: The following transports require newer OSs versions (iOS 13+, tvOS 13+ and macOS 10.15+): RemoteTransportServer, RemoteTransportServerClient
Installation
Our preferred installation method is SPM but we're still support CocoaPods.
Swift Package Manager
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
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'Powered Apps
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
Support & Contribute
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.
<a href="http://labs.immobiliare.it"><img src="./Documentation/assets/immobiliarelabs.png" alt="Indomio" width="200"/></a>
Package Metadata
Repository: immobiliare/glider
Default branch: main
README: README.md