All Projects β†’ girish3 β†’ Vlog

girish3 / Vlog

Licence: mit
An in-display logging library for Android πŸ“²

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Vlog

Android Remote Debugger
A library for remote logging, database debugging, shared preferences and network requests
Stars: ✭ 132 (+53.49%)
Mutual labels:  logging, debugging, debug
React Native Logs
Performance-aware simple logger for React-Native with namespaces, custom levels and custom transports (colored console, file writing, etc.)
Stars: ✭ 84 (-2.33%)
Mutual labels:  logging, debugging, debug
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.
Stars: ✭ 3,710 (+4213.95%)
Mutual labels:  logging, debugging, debug
Debug
A tiny JavaScript debugging utility modelled after Node.js core's debugging technique. Works in Node.js and web browsers
Stars: ✭ 9,912 (+11425.58%)
Mutual labels:  logging, debugging, debug
Icecream
🍦 Never use print() to debug again.
Stars: ✭ 5,601 (+6412.79%)
Mutual labels:  library, debugging, debug
Cocoadebug
iOS Debugging Tool πŸš€
Stars: ✭ 3,769 (+4282.56%)
Mutual labels:  logging, debugging, debug
Log Process Errors
Show some ❀️ to Node.js process errors
Stars: ✭ 424 (+393.02%)
Mutual labels:  library, logging, debugging
Humblelogging
HumbleLogging is a lightweight C++ logging framework. It aims to be extendible, easy to understand and as fast as possible.
Stars: ✭ 15 (-82.56%)
Mutual labels:  library, logging
Belogging
Easy and opinionated logging configuration for Python apps
Stars: ✭ 20 (-76.74%)
Mutual labels:  library, logging
Fliplog
fluent logging with verbose insight, colors, tables, emoji, filtering, spinners, progress bars, timestamps, capturing, stack traces, tracking, presets, & more...
Stars: ✭ 41 (-52.33%)
Mutual labels:  logging, debug
Bugsnag Node
[DEPRECATED] Please upgrade to our Universal JS notifier "@bugsnag/js" β€’ https://github.com/bugsnag/bugsnag-js
Stars: ✭ 48 (-44.19%)
Mutual labels:  debugging, debug
Unitydbgdraw
DbgDraw is an API that provides the ability to render various 2D and 3D shapes for visual debugging purposes.
Stars: ✭ 20 (-76.74%)
Mutual labels:  debugging, debug
Viztracer
VizTracer is a low-overhead logging/debugging/profiling tool that can trace and visualize your python code execution.
Stars: ✭ 874 (+916.28%)
Mutual labels:  logging, debugging
Bugsnag Android
Bugsnag crash monitoring and reporting tool for Android apps
Stars: ✭ 990 (+1051.16%)
Mutual labels:  debugging, debug
Bugsnag Laravel
Bugsnag notifier for the Laravel PHP framework. Monitor and report Laravel errors.
Stars: ✭ 746 (+767.44%)
Mutual labels:  debugging, debug
Android Debug Database
A library for debugging android databases and shared preferences - Make Debugging Great Again
Stars: ✭ 7,946 (+9139.53%)
Mutual labels:  debugging, debug
Node In Debugging
γ€ŠNode.js θ°ƒθ―•ζŒ‡ε—γ€‹
Stars: ✭ 6,139 (+7038.37%)
Mutual labels:  debugging, debug
Logdown.js
✏️ Debug utility with markdown support that runs on browser and server
Stars: ✭ 1,013 (+1077.91%)
Mutual labels:  logging, debug
Plog
Portable, simple and extensible C++ logging library
Stars: ✭ 1,061 (+1133.72%)
Mutual labels:  library, logging
Litter
Litter is a pretty printer library for Go data structures to aid in debugging and testing.
Stars: ✭ 1,137 (+1222.09%)
Mutual labels:  library, logging

Vlog

Vlog was featured in Android Weekly

An In-Display real-time logging Library for Android.
Vlog provides an easy and convenient way to access logs right on your phone.

Messenger chat like bubble is introduced to display logs in a non-intrusive manner. The bubble also shows the count badge to indicate the presence of logs. Along with that, basic filtering capability helps with finding specific logs,

Philosophy

Logs play a crucial part in diagnosing issues. Without proper logging, developers may have to spend countless hours debugging the root cause. When the codebase becomes huge, logs can also prove to be useful in understanding complex execution flows. Although one can argue to follow execution from one breakpoint to another, the whole process can be time-consuming. But for the most part, logs are an indispensable tool in any developer’s arsenal. More so for an android developer where there can be network failures, device permission denials, SQL errors, background thread issues, telemetry data inaccuracies, and innumerable other concerns. And Vlog takes it a step forward and helps in conveniently check logs right on your phone.

Getting Started

Gradle Dependency

Add maven source in root build.gradle:

allprojects {
 repositories {
  ...
  maven { url 'https://jitpack.io' }
 }
}

Add the library dependency in build.gradle file. Notice the no-op version, an empty implementation, which ensures library is not added to the release builds:

dependencies {
 debugImplementation 'com.github.girish3.Vlog:library:v0.3'
 releaseImplementation 'com.github.girish3.Vlog:library-no-op:v0.3'
}

Basic Usage

The Vlog exposes easy-to-use APIs and has same logging methods as Android's Log utility ( Log.v, Log.d...)

val vlog = Vlog.getInstance(context) 
// In the above code, make sure to pass application context as an argument instead of Activity context

// start vlogging (the bubble will appear)
vlog.start()

vlog.v("<tag>", "<log message>") // verbose log
vlog.e("<tag>", "<log message>") // error log

// stop vlogging
vlog.stop()

// check if vlog is currently active
vlog.isEnabled() // returns true if vlog.start() was called

Integrate with Timber

Timber is a popular logging library. Timber is extensible therefore Vlog can be seamlessly integrated alongside Timber. Add a behavior through Tree instance and plant the instance by calling Timber.plant. For more details, check the timber sample module in this repo.

Advance Usage

Often, there is a need to not just print logs but also either to save them in a local file or upload it to a server. The Chain of responsibility pattern is a recommended pattern for such needs. In this pattern, each object in the chain receives the log data and can therefore be responsible to print the log statement (logcat), save in a file, or, in our use-case, pass the data to Vlog library. Refer sample app in this repo for more details. For a quick setup, the app's logger folder can directly be copy-pasted in any Android project.

Contribute

All types of contribution is accepted. Raise issues, suggest changes or submit a pull request.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].