Aardvark alternatives and similar libraries
Based on the "Logging" category.
Alternatively, view Aardvark alternatives based on common mentions on social networks and blogs.
-
CocoaLumberjack
A fast & simple, yet powerful & flexible logging framework for macOS, iOS, tvOS and watchOS -
XCGLogger
A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog() or print(), but with additional information, such as the date, function name, filename and line number. -
GodEye
Automaticly display Log,Crash,Network,ANR,Leak,CPU,RAM,FPS,NetFlow,Folder and etc with one line of code based on Swift. Just like God opened his eyes -
TinyConsole
📱💬🚦 TinyConsole is a micro-console that can help you log and display information inside an iOS application, where having a connection to a development computer is not possible. -
CleanroomLogger
CleanroomLogger provides an extensible Swift-based logging API that is simple, lightweight and performant -
KZLinkedConsole
Clickable links in your Xcode console, so you never wonder which class logged the message. -
Diagnostics
Allow users to easily share Diagnostics with your support team to improve the flow of fixing bugs. -
JustLog
DISCONTINUED. JustLog brings logging on iOS to the next level. It supports console, file and remote Logstash logging via TCP socket with no effort. Support for logz.io available. -
LxDBAnything
Automate box any value! Print log without any format control symbol! Change debug habit thoroughly! -
XLFacility
DISCONTINUED. Elegant and extensive logging facility for OS X & iOS (includes database, Telnet and HTTP servers) -
Twitter Logging Service
Twitter Logging Service is a robust and performant logging framework for iOS clients -
Loggerithm
DISCONTINUED. A lightweight Swift logger, uses print in development and NSLog in production. Support colourful and formatted output. -
puree
DISCONTINUED. [Obsoleted] A log collector for iOS (new version! -> https://github.com/cookpad/Puree-Swift) -
Logkit
An efficient logging library for OS X, iOS, watchOS, and tvOS – written in Swift. Log to console, file, HTTP service, or your own endpoint. Simple to get started, but smartly customizable. -
Atlantis
A powerful input-agnostic swift logging framework made to speed up development with maximum readability. -
CleanroomASL
DISCONTINUED. A Swift-based API for reading from & writing to the Apple System Log (more commonly known somewhat inaccurately as "the console") -
TraceLog
TraceLog is a highly configurable, flexible, portable, and simple to use debug logging system for Swift and Objective-C applications running on Linux, macOS, iOS, watchOS, and tvOS. -
ReflectedStringConvertible
A protocol that allows any class to be printed as if it were a struct or a JSON object. -
Spy
Spy is a flexible, lightweight, multiplatform logging utility written in pure Swift. It allows to log with different levels and on different channels. You can define what levels and channels actually are.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Aardvark or a related project?
README
Aardvark
Aardvark is a library that makes it dead simple to create actionable bug reports.
Getting started
There are only three steps to get Aardvark logging and bug reporting up and running.
1) Install Aardvark.
Using CocoaPods
platform :ios, '8.0'
pod 'Aardvark'
Using Carthage
github "Square/Aardvark"
Using Git Submodules
Or manually checkout the submodule with git submodule add [email protected]:Square/Aardvark.git
, drag Aardvark.xcodeproj to your project, and add Aardvark as a build dependency.
2) Setup email bug reporting with a single method call
It is best to do this when you load your application’s UI.
In Swift:
Aardvark.addDefaultBugReportingGestureWithEmailBugReporter(withRecipient:)
In Objective-C:
[Aardvark addDefaultBugReportingGestureWithEmailBugReporterWithRecipient:]
3) Replace calls to print
with log
.
In Objective-C, replace calls to NSLog
with ARKLog
.
Reporting Bugs
After doing the above, your users can report a bug by making a two-finger long-press gesture. This gesture triggers a UIAlert asking the user what went wrong. When the user enters this information, an email bug report is generated complete with an attached app screenshot and a text file containing the last 2000 logs. Screenshots are created and stored within Aardvark and do not require camera roll access.
[[Bug Report Flow](BugReportFlow.gif)](BugReportFlow.gif)
Want to look at logs on device? Push an instance of [ARKLogTableViewController](Aardvark/ARKLogTableViewController.h) onto the screen to view your logs.
Performance
Logs are distributed to loggers on an internal background queue that will never slow down your app. Logs observed by the log store are incrementally appended to disk and not stored in memory.
Exception Logging
To turn on logging of uncaught exceptions, call ARKEnableLogOnUncaughtException()
. When an uncaught exception occurs, the stack trace will be logged to the default log distributor. To test this out in the sample app, hold one finger down on the screen for at least 5 seconds.
Once the exception is logged, it will be propogated to any existing uncaught exception handler. By default, the exception will be logged to the default log distributor. To log to a different distributor, call ARKEnableLogOnUncaughtExceptionToLogDistributor(...)
. You can enable logging to multiple log distributors by calling the method multiple times.
Customize Aardvark
Want to customize how bug reports are filed? Pass your own object conforming to the [ARKBugReporter](Aardvark/ARKBugReporter.h) protocol and the desired subclass of UIGestureRecognizer
to [Aardvark addBugReporter:triggeringGestureRecognizerClass:]
. You can further customize how bug reports will be triggered by modifying the returned gesture recognizer.
Want to change how logs are formatted? Set your own logFormatter
on the [ARKEmailBugReporter](Aardvark/ARKEmailBugReporter.h) returned from [Aardvark addDefaultBugReportingGestureWithEmailBugReporterWithRecipient:]
.
Want to log to the console? [ARKLogDistributor defaultDistributor].defaultLogStore.printsLogsToConsole = YES;
.
Want different log files for different features? Create an [ARKLogStore](CoreAardvark/ARKLogStore.h) for each feature you want to have its own log file and add them to the default log distributor with [[[ARKLogDistributor](Logging/ARKLogDistributor.h) defaultDistributor] addLogObserver:featureLogStore]
. Set the logFilterBlock
on your [ARKLogStore](CoreAardvark/ARKLogStore.h) to make sure only the logs you want are observed by the [ARKLogStore](CoreAardvark/ARKLogStore.h). Use ARKLogWithType
’s userInfo
dictionary to specify to which feature a log pertains. See [SampleViewController](AardvarkSample/AardvarkSample/SampleViewController.swift)’s tapGestureLogStore
for an example.
Want to send your logs to third party services? One log can be easily distributed to multiple services by adding objects conforming to [ARKLogObserver](CoreAardvark/ARKLogObserver.h) to the default [ARKLogDistributor](CoreAardvark/ARKLogDistributor.h) via addLogObserver:
. [SampleCrashlyticsLogObserver](AardvarkSample/AardvarkSample/SampleCrashlyticsLogObserver.h) is an example of an [ARKLogObserver](CoreAardvark/ARKLogObserver.h) that sends event logs to Crashlytics.
Want to log with Aardvark but don’t want to use Aardvark’s bug reporting tool? Skip step #2 in Getting Started and manually add [ARKLogObserver](CoreAardvark/ARKLogObserver.h) to the default [ARKLogDistributor](CoreAardvark/ARKLogDistributor.h).
Requirements
- Xcode 8.0 or later
- iOS 8 or later
Contributing
We’re glad you’re interested in Aardvark, and we’d love to see where you take it. Please read our [contributing guidelines](Contributing.md) prior to submitting a Pull Request.
Thanks, and happy logging!
*Note that all licence references and agreements mentioned in the Aardvark README section above
are relevant to that project's source code only.