✈️ Universal Logging - low overheaded simple & flexible for Swift (iOS, macOS, tvOS)
MIT License
Bot releases are hidden (Show)
Published by malcommac over 1 year ago
OSLogFormatter
as default formatter for OSLogTransport
Published by malcommac over 1 year ago
FileHandle
on iOS 13.4+ when not enough space on disk is leftPublished by malcommac over 1 year ago
#RELEASE
builds (using GliderSDK.shared.disablePrivacyRedaction = true
Published by malcommac almost 2 years ago
Published by malcommac almost 2 years ago
Temporary disabled SwiftLint via SPM plugin.
Published by malcommac about 2 years ago
Released on 2022-09-12
This is the first public stable release. All APIs definitions are completed and all required features are present.
We're using it in production on Immobiliare/Indomio mobile applications.
Published by malcommac about 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.31
Internal pre-release. Not ready for production.
queue
in Transport
is now always setTransportManager
which may lead to unexpected crashesGliderSentryTransport
, which may lead to crashes at the startupPublished by malcommac about 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.30
Internal pre-release. Not ready for production.
NetWatcher
package to monitor and record networking calls. You can monitor both a particular URLSessionConfiguration
or globally the entire application's network stack.NetWatcher
: NetArchiveTransport
create a single package where all the network requests can be stored (it's an SQLite3 database, of course), while NetSparseFilesTransport
allows you to save a file per single request inside a specific folder. They save both the request (including the cURL command) and the raw response.This is an example of recording:
// Use sparse files to store each call
let sparseConfig = NetSparseFilesTransport.Configuration(directoryURL: rootDirectoryURL)
// Configure where the data are saved
let watcherConfig = try NetWatcher.Config(storage: .sparseFiles(sparseConfig))
NetWatcher.shared.setConfiguration(watcherConfig)
// Start recording globally
NetWatcher.shared.captureGlobally(true)
When you are okay you can disable recording just using:
NetWatcher.shared.captureGlobally(false)
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.23
Internal pre-release. Not ready for production.
extra
fields.Message
(with interpolation string which supports privacy, padding, and truncation) directly inside the extra
field.Published by malcommac about 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.21
Internal pre-release. Not ready for production.
Optional
value during formatting phases of the lognil
keys during the formatting phase of the variablesFieldsFormatter
which prevents the correct format of the logLevel
, CallSite
, and other minor structures publicly availablePublished by malcommac over 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.16
Internal pre-release. Not ready for production.
isEnabled
inside the configuration of each transport to initialize the instance and enable/disable it automatically after the creationXCodeFormatter
and TerminalFormatter
are open
classes and the function which returns their fields
is open so you can customize it without rewriting the entire code.Published by malcommac over 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.15
Internal pre-release. Not ready for production.
XCodeFormatter
to format logs for ConsoleTransport
specifically for XCode debug consolecolors
property to colorize EventFormatter
instances (you can now colorize both XCode logs and logs for ANSI terminals)TerminalFormatter
to format logs for ANSI Terminal and similar outputsPublished by malcommac over 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.14
Internal pre-release. Not ready for production.
FieldsFormatter.standard()
which replaces the default
one; the formatter function was slightly modified to better render when debugging (it's the default formatter for ConsoleTransport
).Event
instances now maintain a weak link to the parent's Log
instances via .log
propertysubsystemIcon
which allows to set an emoji for a Log
representationicon
to print the subsystem's icon of a log when setPublished by malcommac over 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.12
Internal pre-release. Not ready for production.
RemoteTransport
transport which can be used to send events locally via bonjour. It supports auto-reconnect and includes a tests suite.RemoteTransportServer
which is used as a server to receive events from a RemoteTransport
instance; it will be used to make the macOS/iOS log viewer client.Published by malcommac over 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.10
Internal pre-release. Not ready for production.
minimumAcceptedLevel
property for all Transport
implementation. With this property you can make a filter at transport level; this is particularly useful when you want to limit the amount of messages received by a transport compared to another for a same Log
instance (for example a Log
may have set both ConsoleTransport
and SentryTransport
instances but only some messages must be sent to remote services in order to avoid any congestion).transports
properties in Log
to set and get transport instances set.transport(forType:)
to get the first instance of a Transport
's type set for a Log
instancePublished by malcommac over 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.9
Internal pre-release. Not ready for production.
label
for Log.Configuration
and Log
instance to identify a logger via combination of subsystem
and category
TableFormatter
Published by malcommac over 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.6
Internal pre-release. Not ready for production.
Published by malcommac over 2 years ago
Full Changelog: https://github.com/malcommac/Glider/commits/0.9.5
Internal pre-release. Not ready for production.
GliderELKTransport
to send logs to Elasticsearch and Kibana stackLogInterpolation
protocol; now the Event
's message is of a type Message
(which still convertible to String
). This allows you to use StringInterpolation
protocol to compose strings which also support privacy settings like OSLogPrivacy
(see examples)