Convert Figma logo to code with AI

tony19 logologback-android

📄The reliable, generic, fast and flexible logging framework for Android

1,197
172
1,197
31

Top Related Projects

2,981

The reliable, generic, fast and flexible logging framework for Java.

10,410

A logger with a small, extensible API which provides utility on top of Android's normal Log class.

1,453

A Fluent Logging API for Java

Quick Overview

Logback-android is a reliable and flexible logging framework for Android applications. It is a port of the popular Logback project, adapted specifically for use in Android environments, providing developers with powerful logging capabilities and configuration options.

Pros

  • Highly configurable and flexible logging system
  • Supports various output destinations (console, file, database)
  • Compatible with SLF4J (Simple Logging Facade for Java)
  • Offers better performance compared to other Android logging solutions

Cons

  • Adds additional size to the application package
  • May require a learning curve for developers unfamiliar with Logback
  • Some advanced features might be overkill for simple logging needs
  • Occasional compatibility issues with certain Android versions or devices

Code Examples

  1. Basic logging:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyActivity extends Activity {
    private static final Logger logger = LoggerFactory.getLogger(MyActivity.class);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        logger.info("Activity created");
    }
}
  1. Logging with parameters:
String username = "John";
int age = 30;
logger.debug("User {} is {} years old", username, age);
  1. Using different log levels:
logger.trace("This is a TRACE message");
logger.debug("This is a DEBUG message");
logger.info("This is an INFO message");
logger.warn("This is a WARN message");
logger.error("This is an ERROR message");

Getting Started

  1. Add the following dependencies to your build.gradle file:
dependencies {
    implementation 'com.github.tony19:logback-android:2.0.0'
    implementation 'org.slf4j:slf4j-api:1.7.30'
}
  1. Create a logback.xml file in the src/main/assets directory:
<configuration>
    <appender name="logcat" class="ch.qos.logback.classic.android.LogcatAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="DEBUG">
        <appender-ref ref="logcat" />
    </root>
</configuration>
  1. Start using the logger in your code as shown in the examples above.

Competitor Comparisons

2,981

The reliable, generic, fast and flexible logging framework for Java.

Pros of Logback

  • More active development and frequent updates
  • Broader community support and extensive documentation
  • Native support for various Java environments beyond Android

Cons of Logback

  • Larger library size, potentially impacting app size on Android
  • Not specifically optimized for Android, may have unnecessary features

Code Comparison

Logback configuration (logback.xml):

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>
  <root level="debug">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

Logback-android configuration (logback.xml):

<configuration>
  <appender name="logcat" class="ch.qos.logback.classic.android.LogcatAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>
  <root level="debug">
    <appender-ref ref="logcat" />
  </root>
</configuration>

The main difference is the use of LogcatAppender in Logback-android, which is specifically designed for Android's logcat system.

10,410

A logger with a small, extensible API which provides utility on top of Android's normal Log class.

Pros of Timber

  • Lightweight and simple to use, with minimal setup required
  • Provides automatic tagging of log messages
  • Supports custom log adapters for flexibility

Cons of Timber

  • Less feature-rich compared to Logback-Android
  • Lacks built-in support for advanced logging features like rolling file appenders
  • No direct support for configuration files

Code Comparison

Timber:

Timber.d("Debug message")
Timber.e(exception, "Error message")

Logback-Android:

logger.debug("Debug message")
logger.error("Error message", exception)

Additional Notes

Timber is designed for simplicity and ease of use, making it a popular choice for smaller projects or those requiring basic logging functionality. Logback-Android, on the other hand, offers more advanced features and configuration options, making it suitable for larger, more complex applications that require extensive logging capabilities.

While Timber provides a streamlined API, Logback-Android offers greater flexibility in terms of log formatting, output destinations, and runtime configuration. However, this comes at the cost of increased complexity and setup time.

Ultimately, the choice between Timber and Logback-Android depends on the specific requirements of your project and the level of logging functionality needed.

1,453

A Fluent Logging API for Java

Pros of Flogger

  • Designed for high-performance logging with minimal overhead
  • Supports fluent API for easier and more readable log statements
  • Offers extensive customization options for log formatting and output

Cons of Flogger

  • Primarily focused on Java, with limited Android-specific features
  • Requires more setup and configuration compared to Logback-Android
  • Less established in the Android ecosystem

Code Comparison

Logback-Android:

Logger logger = LoggerFactory.getLogger(MyClass.class);
logger.debug("Debug message");
logger.info("Info message with {}", parameter);

Flogger:

private static final FluentLogger logger = FluentLogger.forEnclosingClass();
logger.atDebug().log("Debug message");
logger.atInfo().with("parameter", value).log("Info message with %s", parameter);

Key Differences

  • Logback-Android is specifically tailored for Android, while Flogger is more general-purpose
  • Flogger uses a fluent API, which can lead to more expressive and readable logging statements
  • Logback-Android follows the SLF4J API, making it easier to integrate with existing projects using this logging facade

Use Cases

  • Choose Logback-Android for Android-specific projects requiring easy setup and SLF4J compatibility
  • Opt for Flogger in performance-critical applications or when a more flexible and customizable logging solution is needed

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

logback-android GitHub release API CircleCI Codacy Badge

Overview

logback-android is a lite version of logback that runs on Android. This library provides a highly configurable logging framework for Android apps, supporting multiple log destinations simultaneously:

  • files
  • SQLite databases
  • logcat
  • sockets
  • syslog
  • email

See Wiki for documentation.

For logback-android@1.x, see the 1.x branch.

Quick Start

  1. Create a new "Basic Activity" app in Android Studio.

  2. In app/build.gradle, add the following dependencies:

    dependencies {
      implementation 'org.slf4j:slf4j-api:2.0.7'
      implementation 'com.github.tony19:logback-android:3.0.0'
    }
    

    If using logback-android in unit tests, either use Robolectric, or use this config instead:

    dependencies {
      implementation 'org.slf4j:slf4j-api:2.0.7'
      implementation 'com.github.tony19:logback-android:3.0.0'
      testImplementation 'ch.qos.logback:logback-classic:1.2.11'
    }
    
    configurations.testImplementation {
      exclude module: 'logback-android'
    }
    
  3. Create app/src/main/assets/logback.xml containing:

    <configuration
      xmlns="https://tony19.github.io/logback-android/xml"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="https://tony19.github.io/logback-android/xml https://cdn.jsdelivr.net/gh/tony19/logback-android/logback.xsd"
    >
      <appender name="logcat" class="ch.qos.logback.classic.android.LogcatAppender">
        <tagEncoder>
          <pattern>%logger{12}</pattern>
        </tagEncoder>
        <encoder>
          <pattern>[%-20thread] %msg</pattern>
        </encoder>
      </appender>
    
      <root level="DEBUG">
        <appender-ref ref="logcat" />
      </root>
    </configuration>
    
  4. In MainActivity.java, add the following imports:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
  5. ...and modify onOptionsItemSelected() to log "hello world":

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Logger log = LoggerFactory.getLogger(MainActivity.class);
        log.info("hello world");
        // ...
    }
    
  6. Build and start the app.

  7. Open logcat for your device (via the Android Monitor tab in Android Studio).

  8. Click the app menu, and select the menu-option. You should see "hello world" in logcat.

Download

Gradle release

dependencies {
  implementation 'org.slf4j:slf4j-api:2.0.7'
  implementation 'com.github.tony19:logback-android:3.0.0'
}

Gradle snapshot (unstable)

repositories {
  maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
}

dependencies {
  implementation 'org.slf4j:slf4j-api:2.0.7'
  implementation 'com.github.tony19:logback-android:3.0.1-SNAPSHOT'
}

Build

Use these commands to create the AAR:

git clone git://github.com/tony19/logback-android.git
cd logback-android
scripts/makejar.sh

The file is output to:

./build/logback-android-3.0.0-debug.aar

Release

  1. CD into ./scripts/release.

  2. Install deps: npm install

  3. Make sure local.properties contains the following keys, required to sign artifacts and upload to Maven Central:

    # output from `gpg --export-secret-keys <PUBKEY_LAST8> | base64`
    signing.key=
    # PUBKEY_LAST8 from `gpg --list-keys` (last 8 digits of pub key)
    signing.keyId=
    # password for key (can be empty if key has no password)
    signing.password=
    # path to secring.gpg file from `gpg --keyring secring.gpg --export-secret-keys > ~/.gnupg/secring.gpg`
    signing.secretKeyRingFile=/Users/tony/.gnupg/secring.gpg
    # OSS sonatype username at https://issues.sonatype.org
    ossrhUsername=
    # OSS sonatype password at https://issues.sonatype.org
    ossrhPassword=
    # profile ID from https://oss.sonatype.org/#stagingProfiles (select profile, and copy profile ID from hash in address bar)
    sonatypeStagingProfileId=b2413418ab44f
    
  4. Do a dry-run: npm run start --dry

  5. If everything looks good, rerun without --dry.

  6. Confirm the artifacts were uploaded in https://repo1.maven.org/maven2/com/github/tony19/logback-android/3.0.0/.