đź“„The reliable, generic, fast and flexible logging framework for Android

Overview

logback-android CircleCI branch Codacy Badge

v2.0.0

Overview

logback-android brings the power of logback to Android. This library provides a highly configurable logging framework for Android apps, supporting multiple log destinations simultaneously:

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

Runs on Android 2.3 (SDK 9) or higher. See Wiki for documentation.

For v1.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 {
      compile 'org.slf4j:slf4j-api:1.7.25'
      compile 'com.github.tony19:logback-android:2.0.0'
    }
  3. Create app/src/main/assets/logback.xml containing:

    <configuration>
      <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 {
  compile 'org.slf4j:slf4j-api:1.7.25'
  compile 'com.github.tony19:logback-android:2.0.0'
}

Gradle snapshot (unstable)

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

dependencies {
  compile 'org.slf4j:slf4j-api:1.7.25'
  compile 'com.github.tony19:logback-android:2.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-2.0.0-debug.aar

Comments
  • RollingPolicy MaxHistory not deleting old files

    RollingPolicy MaxHistory not deleting old files

    seems like it already fixed in https://jira.qos.ch/browse/LOGBACK-162

    but doesn't work for android

    my config

          LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
          loggerContext.reset();
    
          RollingFileAppender<ILoggingEvent> rollingFileAppender = new RollingFileAppender<>();
          rollingFileAppender.setContext(loggerContext);
          rollingFileAppender.setAppend(true);
          rollingFileAppender.setFile(logDirectory + File.separator + logFileName + ".log");
    
          SizeAndTimeBasedFNATP<ILoggingEvent> fileNamingPolicy = new SizeAndTimeBasedFNATP<>();
          fileNamingPolicy.setContext(loggerContext);
          fileNamingPolicy.setMaxFileSize(fileSizeKB + "KB");
    
          TimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new TimeBasedRollingPolicy<>();
          rollingPolicy.setContext(loggerContext);
          rollingPolicy.setFileNamePattern(logDirectory + File.separator + logFileName + ".%d{yyyy-MM-dd}.%i.log");
          rollingPolicy.setMaxHistory(historyLength);
          rollingPolicy.setTimeBasedFileNamingAndTriggeringPolicy(fileNamingPolicy);
          rollingPolicy.setParent(rollingFileAppender);  // parent and context required!
          rollingPolicy.start();
    
          PatternLayoutEncoder encoder = new PatternLayoutEncoder();
          encoder.setContext(loggerContext);
          encoder.setCharset(Charset.forName("UTF-8"));
          encoder.setPattern("%date %level [%thread] %msg%n");
          encoder.start();
    
          rollingFileAppender.setRollingPolicy(rollingPolicy);
          rollingFileAppender.setEncoder(encoder);
          rollingFileAppender.start();
    
          // add the newly created appenders to the root logger;
          // qualify Logger to disambiguate from org.slf4j.Logger
          ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
          root.setLevel(level);
          root.addAppender(rollingFileAppender);
    
    archived 
    opened by AlexandrSalin 20
  • Oracle DB appender not logging into relevant columns?

    Oracle DB appender not logging into relevant columns?

    If I use the standard ORACLE.SQL ddl file, I get 0 rows/data logged into the backend. But if I modify the standard Oracle.sql I get logged yet incomplete rows : Below is the data from the 3 Oracle tables after Logback'ing 8 logs w/ the simplified Oracle.sql ddl. Any other columns not listed are NULL.

    0 rows in table LOGGING_EVENT_EXCEPTION
    
    8 rows in table LOGGING_EVENT
    TIMESTMP    REFERENCE_FLAG  EVENT_ID
    1.38988E+12 1   1006
    1.38988E+12 1   1010
    1.38988E+12 1   1012
    1.38988E+12 1   1016
    1.38988E+12 1   1018
    1.38988E+12 1   1004
    1.38988E+12 1   1008
    1.38988E+12 1   1014
    
    
    8 rows in table  LOGGING_EVENT_PROPERTY
    EVENT_ID
    1006
    1010
    1012
    1016
    1018
    1004
    1008
    1014
    

    I modified the ORACLE.SQL ddl and removed all primary/foreign keys. I also made all columns NULL. These modifications insure that there is no balking/refusal on the backend side. It ensures that all data will be logged regardless of primary/foreign key data integrity:

    create sequence LOGGING_EVENT_ID_SEQ
    minvalue 1000
    increment by 2
    cache 1000;
    
    
    CREATE TABLE logging_event
      (
        timestmp NUMBER(20) NULL,
        formatted_message VARCHAR2(4000) NULL,
        logger_name VARCHAR(254) NULL,
        level_string VARCHAR(254) NULL,
        thread_name VARCHAR(254) NULL,
        reference_flag SMALLINT NULL,
        arg0 VARCHAR(254) NULL,
        arg1 VARCHAR(254) NULL,
        arg2 VARCHAR(254) NULL,
        arg3 VARCHAR(254) NULL,
        caller_filename VARCHAR(254) NULL,
        caller_class VARCHAR(254) NULL,
        caller_method VARCHAR(254) NULL,
        caller_line CHAR(4) NULL,
        event_id NUMBER(10) NULL
    --    event_id NUMBER(10) PRIMARY KEY
      );
    
    
    -- the / suffix may or may not be needed depending on your SQL Client
    -- Some SQL Clients, e.g. SQuirrel SQL has trouble with the following
    -- trigger creation command, while SQLPlus (the basic SQL Client which
    -- ships with Oracle) has no trouble at all.
    
    CREATE TRIGGER logging_event_id_seq_trig
      BEFORE INSERT ON logging_event
      FOR EACH ROW
      BEGIN
        SELECT logging_event_id_seq.NEXTVAL
        INTO :NEW.event_id
        FROM DUAL;
      END;
    /
    
    CREATE TABLE logging_event_property
      (
        event_id         NUMBER(10) NULL,
        mapped_key VARCHAR2(254) NULL,
        mapped_value VARCHAR2(1024) NULL
      );
    
    CREATE TABLE logging_event_exception
      (
        event_id NUMBER(10) NULL,
        i SMALLINT NULL,
        trace_line VARCHAR2(254) NULL
      );
    /
    -------------------------------------  
    

    LOGCAT output: note the entry:

    01-16 07:42:02.826: I/System.out(23786): 07:42:02,835 |-INFO in ch.qos.logback.core.db.DriverManagerConnectionSource@425d5588 - supportsGetGeneratedKeys=false
    
    
    01-16 07:42:02.576: E/Trace(23786): error opening trace file: No such file or directory (2)
    01-16 07:42:02.693: I/System.out(23786): 07:42:02,652 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [assets/logback.xml] at [assets/logback.xml]
    01-16 07:42:02.701: I/System.out(23786): 07:42:02,707 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.db.DBAppender]
    01-16 07:42:02.701: I/System.out(23786): 07:42:02,709 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [DB]
    01-16 07:42:02.803: D/libc(23786): Forward DNS query to netd(h=localhost s=^)
    01-16 07:42:02.826: I/System.out(23786): 07:42:02,834 |-INFO in ch.qos.logback.core.db.DriverManagerConnectionSource@425d5588 - Driver name=Oracle JDBC driver
    01-16 07:42:02.826: I/System.out(23786): 07:42:02,835 |-INFO in ch.qos.logback.core.db.DriverManagerConnectionSource@425d5588 - Driver version=10.1.0.5.0
    01-16 07:42:02.826: I/System.out(23786): 07:42:02,835 |-INFO in ch.qos.logback.core.db.DriverManagerConnectionSource@425d5588 - supportsGetGeneratedKeys=false
    01-16 07:42:02.826: I/System.out(23786): 07:42:02,837 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.android.LogcatAppender]
    01-16 07:42:02.826: I/System.out(23786): 07:42:02,838 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [logcat]
    01-16 07:42:02.842: I/System.out(23786): 07:42:02,849 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
    01-16 07:42:02.873: I/System.out(23786): 07:42:02,883 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to ALL
    01-16 07:42:02.873: I/System.out(23786): 07:42:02,884 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [DB] to Logger[ROOT]
    01-16 07:42:02.873: I/System.out(23786): 07:42:02,885 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [logcat] to Logger[ROOT]
    01-16 07:42:02.873: I/System.out(23786): 07:42:02,885 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
    01-16 07:42:02.881: I/System.out(23786): 07:42:02,886 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@42561688 - Registering current configuration as safe fallback point
    01-16 07:42:03.076: D/dalvikvm(23786): GC_CONCURRENT freed 1251K, 14% free 8668K/10019K, paused 12ms+13ms, total 48ms
    01-16 07:42:03.170: V/com.ntier.android.jdbctest.MainActivity(23786): 07:42:02.888 14.01.16 [main]  TRACE   c.n.android.jdbctest.MainActivity - onCreate
    01-16 07:42:03.287: V/com.ntier.android.util.AndroidConnectDB(23786): 07:42:03.214 14.01.16 [main]  TRACE   c.n.android.util.AndroidConnectDB - :onPreExecute()
    01-16 07:42:03.381: V/com.ntier.android.jdbctest.MainActivity(23786): 07:42:03.300 14.01.16 [main]  TRACE   c.n.android.jdbctest.MainActivity - com.ntier.android.util.AndroidConnectDB@42580310
    01-16 07:42:03.443: D/libEGL(23786): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
    01-16 07:42:03.498: D/libEGL(23786): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
    01-16 07:42:03.506: D/libEGL(23786): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
    01-16 07:42:03.897: D/OpenGLRenderer(23786): Enabling debug mode 0
    01-16 07:42:04.162: V/com.ntier.android.util.AndroidConnectDB(23786): 07:42:03.306 14.01.16 [AsyncTask #1]  TRACE   c.n.android.util.AndroidConnectDB - doInBackground()
    01-16 07:42:04.357: V/com.ntier.android.util.AndroidConnectDB(23786): 07:42:04.170 14.01.16 [AsyncTask #1]  TRACE   c.n.android.util.AndroidConnectDB - network detected
    01-16 07:42:04.443: V/com.ntier.android.util.AndroidConnectDB(23786): 07:42:04.363 14.01.16 [AsyncTask #1]  TRACE   c.n.android.util.AndroidConnectDB - network connected
    01-16 07:42:04.545: V/com.ntier.android.util.AndroidConnectDB(23786): 07:42:04.454 14.01.16 [AsyncTask #1]  TRACE   c.n.android.util.AndroidConnectDB - ConnectOra constructor
    01-16 07:42:04.693: V/com.ntier.android.util.AndroidConnectDB(23786): 07:42:04.626 14.01.16 [main]  TRACE   c.n.android.util.AndroidConnectDB - :onPostExecute()!
    

    I'm using Eclipse ADT latest , logback-android-1.0.10-2.jar , slf4j-api-1.7.5.jar

    LOGBACK image attached.

    Model: Droid RAZR Android version: 4.1.2

    If there is a better way to attach a text file I'd like to know. It seems as if this Github only allows images to be attached and not text files?

    archived 
    opened by JohnDonaldson 20
  • Can't use logback for Android JUnit in Android Studio?

    Can't use logback for Android JUnit in Android Studio?

    image image

    I had put "logback.xml" in src\test\assets\logback.xml src\main\assets\logback.xml src\androidTest\assets\logback.xml

    but seems it still not working

    logback file below:

    <configuration debug='true'>
        <property name="LOG_DIR" value="/sdcard/logback" />
        <appender name="LOG_CAT_APPENDER" class="ch.qos.logback.classic.android.LogcatAppender">
            <encoder class="demo2017.demos.baozs.com.common.logback.ExtendedPatternLayoutEncoder">
                <pattern>%d{HH:mm:ss.SSS} %PID %TID [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
        <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${LOG_DIR}/logfile.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_DIR}/logfile.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
                <maxHistory>7</maxHistory>
                <totalSizeCap>1GB</totalSizeCap>
            </rollingPolicy>
            <encoder class="demo2017.demos.baozs.com.common.logback.ExtendedPatternLayoutEncoder">
                <pattern>%d{HH:mm:ss.SSS} %-4relative %PID %TID [%thread] %-5level %logger{35} - %msg %n</pattern>
            </encoder>
        </appender>
        <appender name="FLOW_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${LOG_DIR}/flow_logfile.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_DIR}/flow_logfile.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
                <maxHistory>7</maxHistory>
                <totalSizeCap>1GB</totalSizeCap>
            </rollingPolicy>
            <encoder class="demo2017.demos.baozs.com.common.logback.ExtendedPatternLayoutEncoder">
                <pattern>%d{HH:mm:ss.SSS} %-4relative %PID %TID [%thread] %-5level %logger{35} - %msg %n</pattern>
            </encoder>
        </appender>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} %PID %TID [%thread] %-5level %logger{36} - %msg</pattern>
            </encoder>
        </appender>
        <root level="DEBUG">
            <appender-ref ref="LOG_CAT_APPENDER" />
            <appender-ref ref="LOG_FILE" />
        </root>
        <logger name="flow" level="DEBUG" additivity="false">
            <appender-ref ref="FLOW_LOG_FILE"/>
        </logger>
        <logger name="test" level="DEBUG" additivity="false">
            <appender-ref ref="STDOUT"/>
        </logger>
    </configuration>
    

    after some trying

    add testCompile 'ch.qos.logback:logback-classic:1.2.3'

    it works but got Class path contains multiple SLF4J bindings. warning..

    wontfix archived 
    opened by Gohan 14
  • HTTP POST method?

    HTTP POST method?

    Hi Mr. Tony, I saw your side project "loggly".

    Are there any plans to implement HTTP POST logging to a webserver from android logback?

    Thanks for a fantastic product!

    question archived 
    opened by JDOaktown 14
  • Adding a FileBufferingSocketAppender

    Adding a FileBufferingSocketAppender

    The FileBufferingSocketAppender and it's auxiliary classes provide the following features in addition to a regular SocketAppender:

    • events are buffered (serialized) to disk
    • events are send in batches
    • events are send in intervals
    • events are persistent, even when there is currently no socket connection or there is an error during transmission
      • events will be evicted from disk in a FIFO mode, defined through a file count quota (amount of log events)

    The new appender takes the following configuration:

    • logFolder (required)
    • fileExtension (default: .ser)
    • batchSize (default: 50)
    • readInterval (default: 1min)
    • fileCountQuota (default: 500)

    Furthermore it provides the same configuration interfaces as the SocketAppender. Internally it holds an instance of the SocketAppender of which it manages the state and to which it delegates the previously mentioned configuration interface calls.

    Discussion/Questions:

    1. why is there no SSLSocketAppender in the logback-android fork?
    2. what would be the best "logback way" to make the current implementation not use a composition but an aggregation instead? so that the SocketAppender would not be instantiated by the FileBufferingSocketAppenderbut through the regular logback mechanisms.
    3. why is there a configuration check (address != null) in the SocketAppenderBase.append (now tryAppend) method?
    4. What would be the best way to do a full-integration test of the new appender?
    5. Though the new appender is mostly useful in context of remote logging with android it might also makes sense to push it all the way upstream to the logback origin and rebase the logback-android project to it. What do you think?
    archived 
    opened by SierraGolf 14
  • feat!: upgrade slf4j to 2.0.3

    feat!: upgrade slf4j to 2.0.3

    Not sure if this is quite the right way of going about it, but was noticing if I updated slf4j to 2.0.x I wasn't getting logs showing up in Android any longer.

    It looks like the only breaking change was in a few places Marker turned to List<Marker> so I updated throughout the code to take this wherever it was needed.

    Tried it out against an android project and logging is now working again, so seems to work.

    I have a feeling this will probably make things not work any longer with older slf4j though, so you may also not want to merge it, or make a different version for slf4j 2.x or something.

    fix #249

    opened by compscidr 13
  • Provide default logback configuration

    Provide default logback configuration

    How/where to set the initial logger configuration? The code sample shows the configuration happening upon the open of an Activity. I would like the configuration file read from the android device before the first activity is started.

    archived 
    opened by phreed 13
  • ContextInitializer.autoConfig() doesn't close resource that could be leak

    ContextInitializer.autoConfig() doesn't close resource that could be leak

    implementation 'com.github.tony19:logback-android:1.3.0-2'

    Run

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
              .detectAll()
              .penaltyLog()
              .build());
    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
              .detectAll()
              .penaltyLog()
              .build());
    
    ContextInitializer ci = new ContextInitializer(lc);
    ci.autoConfig();
    

    got the error

    A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
        java.lang.Throwable: Explicit termination method 'close' not called
            at dalvik.system.CloseGuard.open(CloseGuard.java:180)
            at java.util.zip.ZipFile.<init>(ZipFile.java:185)
            at java.util.jar.JarFile.<init>(JarFile.java:199)
            at libcore.net.url.JarURLConnectionImpl.openJarFile(JarURLConnectionImpl.java:136)
            at libcore.net.url.JarURLConnectionImpl.findJarFile(JarURLConnectionImpl.java:125)
            at libcore.net.url.JarURLConnectionImpl.connect(JarURLConnectionImpl.java:82)
            at libcore.net.url.JarURLConnectionImpl.getInputStream(JarURLConnectionImpl.java:215)
            at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(Unknown Source)
            at ch.qos.logback.classic.util.ContextInitializer.autoConfig(Unknown Source)
    
    archived 
    opened by FilenkovMaxim 11
  • Logback with Encryption is not writing all the data.

    Logback with Encryption is not writing all the data.

    I have written a custom rolling file appender, where I overrode setOutputStream(), and I'm trying to encrypt the output stream, as shown below (highlighted).

    My custom rolling appender class:

    class CustomRollingFileAppender<E> constructor(context: Context) : RollingFileAppender<E>() {
       
        val logProcessor: LogProcessor
    
        init {
            logProcessor = LogProcessor(context)
        }
    
        override fun setOutputStream(outputStream: OutputStream) {
            synchronized(lock) {         
                if (outputStream is ResilientFileOutputStream) {
                    val cos: CipherOutputStream = logProcessor.encrypt(outputStream)
                    super.setOutputStream(cos)
                } else {
                    super.setOutputStream(outputStream)
                }
            }
        }
    }
    

    I have the below method which generates a key from keystore, creates a cipher, and returns a cipher output stream, which would be set in the above implementation.

        fun encrypt(outputStream: OutputStream): CipherOutputStream {
            val cipher = Cipher.getInstance("AES/CBC/PKCS7Padding")
            cipher.init(Cipher.ENCRYPT_MODE, keyFromKeystore)
    
            return CipherOutputStream(outputStream, cipher)
        }
    

    But what I observed was if I try to log like around 1000 lines of data as soon as I clicked a button as below, it is not entirely writing the data in to the files. I found this out when I decrypted the file back.

        private void createLoggerEntrys() {
            for (int i = 1; i < 1000; i++){
                logger.debug("i have entry #[{}]",i);
            }
        }
    

    However if I use 30 lines of data for example after I click a button, it is working good. I was able to encrypt and decrypt it back with all the data entered.

    I did set immediate flush to my encoder which is going to be used as flag to flush the bytes to underlying output stream.

    Can you please guide/clarify on this? Let me know if you have any questions on this.

    bug archived 
    opened by pramodrapolu 10
  • Suggestion: SQLiteAppender implement setMaxHistory

    Suggestion: SQLiteAppender implement setMaxHistory

    Hi, firstly I want to say this is really great library. Already using similar library for iOS in my open source project and I'm about to use logback-android for android logging. I'm specially interested into logging to SQLite db.

    The only thing I'm missing is setMaxHistory in days similar to RollingFileAppender, so debug logs won't get too big. Will you add this? Many thanks.

    enhancement archived 
    opened by mauron85 10
  • NPE in ThrowableProxy

    NPE in ThrowableProxy

    Description

    I get reported below exception from some users when calling org.slf4j.Logger#error(java.lang.String, java.lang.Throwable)

    Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.StackTraceElement[].clone()' on a null object reference
           at ch.qos.logback.classic.spi.ThrowableProxy.()
           at ch.qos.logback.classic.spi.ThrowableProxy.()
           at ch.qos.logback.classic.spi.LoggingEvent.()
           at ch.qos.logback.classic.Logger.addAppender(Logger.java)
           at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java)
           at ch.qos.logback.classic.Logger.addAppender(Logger.java)
    

    Steps to reproduce

    I don't know how to reproduce.

    Environment

    • logback-android version: 2.0.0
    • Android version: So far 5.1 - 6.0.1
    • Platform: any
    bug cannot reproduce 
    opened by bakua 9
  • fix(deps): update dependency org.robolectric:robolectric to v4.9.2

    fix(deps): update dependency org.robolectric:robolectric to v4.9.2

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.robolectric:robolectric (source) | 4.9.1 -> 4.9.2 | age | adoption | passing | confidence |


    Configuration

    đź“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Caused by java.lang.NullPointerException Attempt to invoke interface method 'void androidx.appcompat.view.menu.d.u(int)' on a null object reference

    Caused by java.lang.NullPointerException Attempt to invoke interface method 'void androidx.appcompat.view.menu.d.u(int)' on a null object reference

    Describe the bug

    Fatal Exception: java.lang.ExceptionInInitializerError: at ch.qos.logback.core.joran.GenericConfigurator.informContextOfURLUsedForConfiguration(GenericConfigurator.java) at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:5) at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:46) at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:7) at org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:16) at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150) at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124) at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388) at com.inyad.store.shared.managers.MessagingManager.(MessagingManager.java:28) at com.inyad.store.shared.managers.SessionBootingManager.addDeviceId(SessionBootingManager.java:20) at com.inyad.store.shared.controllers.AppController.onCreate(AppController.java:48) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7205) at android.app.ActivityThread.-$$Nest$mhandleBindApplication(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2288) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:240) at android.os.Looper.loop(Looper.java:351) at android.app.ActivityThread.main(ActivityThread.java:8355) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)

    Caused by java.lang.NullPointerException: Attempt to invoke interface method 'void androidx.appcompat.view.menu.d.u(int)' on a null object reference at ch.qos.logback.core.joran.util.ConfigurationWatchListUtil.(ConfigurationWatchListUtil.java) at ch.qos.logback.core.joran.GenericConfigurator.informContextOfURLUsedForConfiguration(GenericConfigurator.java) at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:5) at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:46) at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:7) at org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:16) at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150) at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124) at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388) at com.inyad.store.shared.managers.MessagingManager.(MessagingManager.java:28) at com.inyad.store.shared.managers.SessionBootingManager.addDeviceId(SessionBootingManager.java:20) at com.inyad.store.shared.controllers.AppController.onCreate(AppController.java:48) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7205) at android.app.ActivityThread.-$$Nest$mhandleBindApplication(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2288) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:240) at android.os.Looper.loop(Looper.java:351) at android.app.ActivityThread.main(ActivityThread.java:8355) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)

    Reproduction

    cannot reproduce it

    Logs

    No response

    logback-android version

    implementation 'com.github.tony19:logback-android:2.0.0'

    OS Version

    13

    What logback configuration are you using? (logback.xml or Java/Kotlin code)

    No response

    Validations

    • [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
    • [X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
    • [X] The provided reproduction is a minimal reproducible of the bug.
    bug pending triage 
    opened by devzakariyainyad 0
  • fix(deps): update dependency org.mockito:mockito-core to v4

    fix(deps): update dependency org.mockito:mockito-core to v4

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.mockito:mockito-core | 2.28.2 -> 4.11.0 | age | adoption | passing | confidence |


    Release Notes

    mockito/mockito

    v4.11.0

    Compare Source

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.11.0

    v4.10.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.10.0

    v4.9.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.9.0

    v4.8.1

    Compare Source

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.8.1

    v4.8.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.8.0

    v4.7.0

    Compare Source

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.7.0

    v4.6.1

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.6.1

    v4.6.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.6.0

    v4.5.1

    Compare Source

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.5.1
    Missing net.bytebuddy.utility.GraalImageCode exception

    If you encounter any issues with missing ByteBuddy classes, make sure you are using ByteBuddy 1.12 or higher.

    v4.5.0

    Compare Source

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.5.0

    v4.4.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.4.0

    v4.3.1

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.3.1

    v4.3.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.3.0

    v4.2.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.2.0

    v4.1.0

    Major new feature: @DoNotMock

    You can now mark classes/interfaces with @org.mockito.DoNotMock to disallow mocking with Mockito. For more information, see our documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/DoNotMock.html

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.1.0

    v4.0.0

    Mockito 4: Removing deprecated APIs.

    All of these APIs have been marked as deprecated and have been present in Mockito for quite a while.

    An overview of now-deleted classes/methods:

    • org.mockito.Matchers which was an alias for org.mockito.ArgumentMatchers
    • org.mockito.ArgumentMatchers#{anyObject,anyVararg} both which were aliases for org.mockito.ArgumentMatchers#any
    • org.mockito.ArgumentMatchers#any*Of, which were aliases for the same method name without the Of and the generic parameters (which were ignored)
    • org.mockito.ArgumentMatchers#{is}{Not}Null(Class) which took a class which was ignored. Aliases for the same methods without the parameter
    • org.mockito.MockedStatic#verify which had the parameter types reversed
    • org.mockito.Mockito#verifyZeroInteractions an alias of verifyNoMoreInteractions
    • org.mockito.Mockito#debug framework integration API that we later refactored
    • org.mockito.configuration.AnnotationEngine which was leaking internal APIs and instead users should use org.mockito.plugins.AnnotationEngine
    • org.mockito.exceptions.verification.TooLittleActualInvocations fixed the grammar from "Little" to "Few"
    • Numerous internal APIs that we never officially supported and can now remove
    • org.mockito.plugins.InstantiatorProvider which was leaking internal APIs and instead users should use InstantiatorProvider2 (we should probably rename back to remove the number in a future major release)
    • org.mockito.runners a package that hosted several old JUnit runners which were no longer supported. Users should instead use org.mockito.junit.MockitoJUnitRunner which is our official JUnit4 runner.

    v3.12.4

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.12.4
    • 2021-08-25 - 1 commit(s) by Rafael Winterhalter
    • No notable improvements. No pull requests (issues) were referenced from commits.

    v3.12.3

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.12.3
    • 2021-08-24 - 9 commit(s) by Rafael Winterhalter
    • Fix implementation of proxy mock maker for toString and add additional unit tests. (#​2405)
    • Avoid cache breakage (#​2402)
    • Add a limited mock maker that is based only on the java.lang.reflect.Proxy utility (#​2397)

    v3.12.2

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.12.2
    • 2021-08-24 - 2 commit(s) by Dmitry Vyazelenko, dependabot[bot]
    • Fixes #​2399 : Adds defaultAnswer to the MockitoMockKey to distinguish the mock types, i.e. to separate mocks from spies otherwise spy type is reused for a mock or vice versa. (#​2400)
    • Sporadic mock verification failures related to hashCode/equals on 3.12.1 (#​2399)
    • Bump versions.errorprone from 2.8.1 to 2.9.0 (#​2396)

    v3.12.1

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.12.1

    v3.12.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.12.0

    v3.11.2

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.11.2

    v3.11.1

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.11.1

    v3.11.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.11.0

    v3.10.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.10.0
    • 2021-05-12 - 0 commit(s) by
    • No notable improvements. No pull requests (issues) were referenced from commits.

    v3.8.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.8.0

    v3.7.7

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.7.7

    v3.7.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.7.0

    v3.6.28

    Changelog generated by Shipkit Changelog Gradle Plugin

    3.6.28
    • 2020-11-25 - 1 commit(s) by Szczepan Faber
    • No notable improvements. No pull requests (issues) were referenced from commits.

    v3.6.0

    Release notes were automatically generated by Shipkit

    3.6.0

    v3.5.15

    Release notes were automatically generated by Shipkit

    3.5.15

    v3.5.13

    Release notes were automatically generated by Shipkit

    3.5.13

    v3.5.11

    Release notes were automatically generated by Shipkit

    3.5.11

    v3.5.10

    Release notes were automatically generated by Shipkit

    3.5.10

    v3.5.9

    Release notes were automatically generated by Shipkit

    3.5.9

    v3.5.7

    Release notes were automatically generated by Shipkit

    3.5.7

    v3.5.6

    Release notes were automatically generated by Shipkit

    3.5.6

    v3.5.5

    Release notes were automatically generated by Shipkit

    3.5.5

    v3.5.2

    Release notes were automatically generated by Shipkit

    3.5.2

    v3.5.0

    Release notes were automatically generated by Shipkit

    3.5.0

    v3.4.6

    Release notes were automatically generated by Shipkit

    3.4.6

    v3.4.4

    Release notes were automatically generated by Shipkit

    3.4.4

    v3.4.3

    Release notes were automatically generated by Shipkit

    3.4.3

    Configuration

    đź“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Open

    These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

    Ignored or Blocked

    These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

    Detected dependencies

    circleci
    .circleci/config.yml
    • cimg/android 2022.12.1
    github-actions
    .github/workflows/issue-close-require.yml
    • actions-cool/issues-helper v3
    .github/workflows/issue-labeled.yml
    • actions-cool/issues-helper v3
    • actions-cool/issues-helper v3
    • actions-cool/issues-helper v3
    • actions-cool/issues-helper v3
    .github/workflows/lock-closed-issues.yml
    • dessant/lock-threads v4
    .github/workflows/semantic-pull-request.yml
    • amannn/action-semantic-pull-request v5
    gradle
    gradle.properties
    • org.slf4j:integration 1.7.36
    • org.slf4j:log4j-over-slf4j 1.7.36
    • org.slf4j:slf4j-api 1.7.36
    • org.slf4j:slf4j-ext 1.7.36
    settings.gradle
    build.gradle
    • com.android.tools.build:gradle 7.3.1
    • io.github.gradle-nexus.publish-plugin 1.1.0
    • com.github.hierynomus.license 0.16.1
    gradle/analysis.gradle
    gradle/docs.gradle
    gradle/publish-module.gradle
    gradle/publish-root.gradle
    logback-android/gradle.properties
    logback-android/build.gradle
    • junit:junit 4.13.2
    • org.hamcrest:hamcrest-junit 2.0.0.0
    • org.robolectric:robolectric 4.9.1
    • org.mockito:mockito-core 2.28.2
    • joda-time:joda-time 2.12.2
    • org.robolectric:android-all 13-robolectric-9030017
    • com.icegreen:greenmail 1.6.12
    • dom4j:dom4j 1.6.1
    • org.easytesting:fest-assert 1.4
    • org.subethamail:subethasmtp 3.1.7
    • com.sun.mail:android-mail 1.6.7
    • com.sun.mail:android-activation 1.6.7
    gradle-wrapper
    gradle/wrapper/gradle-wrapper.properties
    • gradle 7.6
    npm
    scripts/release/package.json
    • @types/minimist ^1.2.2
    • @types/node ^18.11.9
    • @types/prompts ^2.4.1
    • @types/semver ^7.3.13
    • conventional-changelog ^3.1.25
    • execa ^6.1.0
    • minimist ^1.2.7
    • picocolors ^1.0.0
    • prompts ^2.4.2
    • semver ^7.3.8
    • tsx ^3.12.1

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
  • No log is printed with Slf4j 2.x.x

    No log is printed with Slf4j 2.x.x

    Description

    I apply the slf4j version 2.0.3 in android project. I tried to print log with debug, error level but nothing is printed. I check via logcat.

    If I rollback to version 1.7.36, it works.

    Steps to reproduce

    implementation("org.slf4j:slf4j-api:2.0.3") implementation("com.github.tony19:logback-android:2.0.0")

    Environment

    Android version : 9 Device : Huawei Nova 3i

    bug 
    opened by toantk238 6
Releases(v_2.0.1)
  • v_2.0.1(Dec 4, 2022)

    What's Changed

    • Use of EXT_DIR with Android API 29 by @roedll in https://github.com/tony19/logback-android/pull/208
    • chore: update versions in README by @tony19 in https://github.com/tony19/logback-android/pull/245
    • Cascade delete logging_event_exception and logging_event_property by @erikhubers in https://github.com/tony19/logback-android/pull/214
    • Configure Renovate by @renovate in https://github.com/tony19/logback-android/pull/251
    • chore: tweak issue template and other workflows by @tony19 in https://github.com/tony19/logback-android/pull/278
    • chore: disallow blank issues; add external links by @tony19 in https://github.com/tony19/logback-android/pull/279
    • fix: allow RollingFileAppender to always run by @tony19 in https://github.com/tony19/logback-android/pull/280
    • feat: enable hostnameVerification flag in SSL sockets by @tony19 in https://github.com/tony19/logback-android/pull/281
    • docs: update usage instructions in logback.xsd by @tony19 in https://github.com/tony19/logback-android/pull/282
    • chore: update readme by @tony19 in https://github.com/tony19/logback-android/pull/283
    • chore: link to pr for slf4j 2.x; add unit test config by @tony19 in https://github.com/tony19/logback-android/pull/284
    • Dont set GMT+0 timezone in RollingCalendar if no timezone is given (fixes #213) by @veN1337 in https://github.com/tony19/logback-android/pull/221
    • fix(deps): update dependency org.robolectric:android-all to v13 by @renovate in https://github.com/tony19/logback-android/pull/276
    • chore: replace version text with badge in readme by @tony19 in https://github.com/tony19/logback-android/pull/285
    • fix(deps): update dependency org.robolectric:robolectric to v4.9 by @renovate in https://github.com/tony19/logback-android/pull/269
    • fix(deps): update dependency org.mockito:mockito-core to v2.28.2 by @renovate in https://github.com/tony19/logback-android/pull/268
    • fix(deps): update dependency junit:junit to v4.13.2 by @renovate in https://github.com/tony19/logback-android/pull/266
    • fix(deps): update slf4jversion to v1.7.36 by @renovate in https://github.com/tony19/logback-android/pull/286
    • fix(deps): update dependency joda-time:joda-time to v2.12.1 by @renovate in https://github.com/tony19/logback-android/pull/265
    • fix(deps): update dependency com.icegreen:greenmail to v1.6.11 by @renovate in https://github.com/tony19/logback-android/pull/262
    • fix(deps): update dependency com.sun.mail:android-mail to v1.6.7 by @renovate in https://github.com/tony19/logback-android/pull/255
    • fix(deps): update dependency com.sun.mail:android-activation to v1.6.7 by @renovate in https://github.com/tony19/logback-android/pull/253
    • chore(deps): update plugin net.researchgate.release to v2.8.1 by @renovate in https://github.com/tony19/logback-android/pull/260
    • chore(deps): update plugin io.codearte.nexus-staging to v0.30.0 by @renovate in https://github.com/tony19/logback-android/pull/259
    • chore(deps): update dependency gradle to v4.10.3 by @renovate in https://github.com/tony19/logback-android/pull/252
    • fix(deps): update gradle to v7 by @tony19 in https://github.com/tony19/logback-android/pull/287
    • ci(circle): use new android image by @tony19 in https://github.com/tony19/logback-android/pull/288
    • chore: make it more obvious that slf4j 2.x not yet supported by @tony19 in https://github.com/tony19/logback-android/pull/289
    • chore: show logback.xsd in example config by @tony19 in https://github.com/tony19/logback-android/pull/290
    • chore(deps): update plugin com.github.hierynomus.license to v0.16.1 by @renovate in https://github.com/tony19/logback-android/pull/258
    • build: gradle deploy refresh by @tony19 in https://github.com/tony19/logback-android/pull/291
    • chore(deps): update dependency gradle to v7.6 by @renovate in https://github.com/tony19/logback-android/pull/292
    • fix(deps): update dependency joda-time:joda-time to v2.12.2 by @renovate in https://github.com/tony19/logback-android/pull/293
    • chore(deps): update dessant/lock-threads action to v4 by @renovate in https://github.com/tony19/logback-android/pull/294

    New Contributors

    • @roedll made their first contribution in https://github.com/tony19/logback-android/pull/208
    • @tony19 made their first contribution in https://github.com/tony19/logback-android/pull/245
    • @erikhubers made their first contribution in https://github.com/tony19/logback-android/pull/214
    • @renovate made their first contribution in https://github.com/tony19/logback-android/pull/251
    • @veN1337 made their first contribution in https://github.com/tony19/logback-android/pull/221

    Full Changelog: https://github.com/tony19/logback-android/compare/v_2.0.0...v_2.0.1

    Source code(tar.gz)
    Source code(zip)
  • v_2.0.0(Feb 27, 2019)

  • v_1.3.0-3(Dec 6, 2018)

  • v_1.3.0-2(Sep 17, 2018)

  • v_1.3.0-1(Sep 17, 2018)

    • [FIX] Fix scanPeriod attribute required for auto-reload to work (LOGBACK-1194)
    • [FIX] Fix SSL for SMTPAppender (LOGBACK-1094)
    • [FIX] Fix artificial limit for number of files allowed in RollingFileAppender (LOGBACK-1175)
    • [FIX] Fix NPE when using MDCFilter (LOGBACK-1165)
    • [FIX] Fix missing log files/entries when using SizeAndTimeBasedRollingPolicy (LOGBACK-1361)
    • [FIX] Fix unexpected DEBUG logs for misspelled log levels (LOGBACK-1288)
    • [FIX] Fix invalid JSON property values for custom appenders (LOGBACK-1101)
    • [NEW] Enable default shutdown hook (LOGBACK-1162)
    • [NEW] Support min length in %i filename pattern (LOGBACK-1248)
    • [NEW] Allow editing MIME message before sending email with SMTPAppender
    Source code(tar.gz)
    Source code(zip)
    logback-android-1.3.0-1.aar(398.55 KB)
  • v_1.2.3-1(Sep 17, 2018)

  • v_1.2.2-1(Sep 17, 2018)

  • v_1.2.1-1(Sep 17, 2018)

  • v_1.2.0-1(Sep 17, 2018)

  • v_1.1.9-1(Sep 17, 2018)

  • v_1.1.8-1(Sep 17, 2018)

  • v_1.1.7-1(Sep 17, 2018)

  • v_1.1.6-1(Sep 17, 2018)

  • v_1.1.5-1(Sep 17, 2018)

  • v_1.1.4-1(Sep 17, 2018)

  • v_1.1.3-1(Sep 17, 2018)

    • [FIX] Fix day of the week in date patterns (LOGBACK-969)
    • [FIX] Suppress errors for optional <include>
    • [FIX] Fix crash when creating log directory in multithreaded environment (#168)
    • [FIX] Fix corrupted emails from SMTPAppender in multithreaded environment (LOGBACK-909)
    • [FIX] Escape characters in XMLLayout and HTMLLayout (LOGBACK-728, LOGBACK-440)
    • [FIX] Fix unexpected rollover that occurred in local time instead of specified time zone
    • [NEW] Make charset configurable in SyslogAppender (LOGBACK-732)
    • [NEW] Add XML support to en/disable stacktrace package detail
    • [NEW] Filtering out selected stack trace frames (LOGBACK-540)
    • [NEW] Add support for depth range to CallerDataConverter
    • [NEW] Allow specifying time zone in TimeBasedRollingPolicy's fileNamePattern (LOGBACK-611)
    Source code(tar.gz)
    Source code(zip)
    logback-android-1.1.3-1.aar(383.79 KB)
  • v_1.1.11-1(Sep 17, 2018)

  • v_1.1.10-1(Sep 17, 2018)

  • v_1.1.2-1(Sep 17, 2018)

  • v_1.1.1-13(Sep 5, 2018)

  • v_1.1.1-12(May 19, 2018)

  • v_1.1.1-11(Apr 11, 2018)

  • v_1.1.1-10(Mar 27, 2018)

    • [BREAKING CHANGE] Remove support for parsing logback configs from AndroidManifest.xml. (Move those configurations into separate files (e.g., into app/src/main/assets/logback.xml), or configure the logs programmatically instead.) Also note this requires that statically initialized loggers be moved into the app's onCreate() callback to ensure the application context could be read for special properties.
    • Fix license config in deployments
    Source code(tar.gz)
    Source code(zip)
    logback-android-1.1.1-10.aar(376.31 KB)
  • v_1.1.1-9(Mar 5, 2018)

    • [FIX] Fix error when building app release with logback-android (#163)

    • [DEPRECATED] Support for logback configurations in AndroidManifest.xml will be removed in the next release. (Move those configurations into separate files (e.g., into app/src/main/assets/logback.xml), or configure the logs programmatically instead.)

    • [DEPRECATED] EPL/LGPL license. (We're switching to the more permissive Apache 2 license in an upcoming release.)

    Source code(tar.gz)
    Source code(zip)
    logback-android-1.1.1-9.aar(380.27 KB)
  • v_1.1.1-8(Feb 6, 2018)

  • v_1.1.1-7(Feb 6, 2018)

    • [FIX] Fix missing interrupted flag in AsyncAppenderBase (#147)
    • [FIX] Remove transitive Android dependency, which was causing pre-dex errors and linter warnings in app builds
    • [NEW] Switched released package names from com.github.tony19:logback-android-classic and com.github.tony19:logback-android-core to com.github.tony19:logback-android. A single artifact will be released going forward.
    • Default to US locale in string conversions
    Source code(tar.gz)
    Source code(zip)
    logback-android-1.1.1-7.aar(380.10 KB)
  • v_1.1.1-6(Aug 15, 2016)

  • v_1.1.1-5(Apr 8, 2016)

  • v_1.1.1-4(Jun 23, 2015)

  • v_1.1.1-3(Oct 1, 2014)

An in-display logging library for Android 📲

Vlog provides an easy and convenient way to access logs right on your phone.

girish budhwani 121 Dec 26, 2022
A tiny Kotlin API for cheap logging on top of Android's normal Log class.

A tiny Kotlin API for cheap logging on top of Android's normal Log class.

Square 849 Dec 23, 2022
Annotation-triggered method call logging for your debug builds.

Hugo Annotation-triggered method call logging for your debug builds. As a programmer, you often add log statements to print method calls, their argume

Jake Wharton 7.9k Dec 31, 2022
Kermit is a Kotlin Multiplatform logging utility with composable log outputs

Kermit is a Kotlin Multiplatform logging utility with composable log outputs. The library provides prebuilt loggers for outputting to platform logging tools such as Logcat and NSLog.

Touchlab 395 Jan 4, 2023
This is an Kotlin Library that enables Annotation-triggered method call logging for Kotlin Multiplatform.

This is an Kotlin Library that enables Annotation-triggered method call logging for Kotlin Multiplatform.

Jens Klingenberg 187 Dec 18, 2022
A demonstration of Kotlin-logging with logback.

try-kotlin-logging A demonstration of Kotlin-logging with logback. Usage # output a log to STDOUT and file(myApp.log) $ ./gradlew run # => 2021-12-11

Hayato Tachikawa 1 Dec 13, 2021
simple Kotlin logging: colorized logs for Kotlin on the JVM

sklog - simple Kotlin logging Kotlin (JVM) logging library for printing colorized text to the console, with an easy upgrade path to the popular kotlin

null 1 Jul 26, 2022
Jambo is an open source remote logging library

Jambo Jambo is an open source remote logging library. For those who would like to see their logs remotely on their android device Jambo is the library

Tabasumu 6 Aug 26, 2022
✔️ Simple, pretty and powerful logger for android

Logger Simple, pretty and powerful logger for android Setup Download implementation 'com.orhanobut:logger:2.2.0' Initialize Logger.addLogAdapter(new A

Orhan Obut 13.5k Dec 30, 2022
An easy way to customize your log in Android,including output to console, writing log to file in high performance way and so on

EasyLog An easy way to customize your log in Android,including output to console, writing log to file in high performance way and so on. 1. Initializa

Taylor 40 Dec 8, 2022
An OkHttp interceptor which has pretty logger for request and response. +Mock support

LoggingInterceptor - Interceptor for OkHttp3 with pretty logger Usage val client = OkHttpClient.Builder() client.addInterceptor(LoggingInterceptor

ihsan BAL 1.3k Dec 26, 2022
Utility logger library for storing logs into database and push them to remote server for debugging

HyperLog Android Overview Log format Download Initialize Usage Get Logs in a File Push Logs Files to Remote Server Sample Testing Endpoint using Reque

HyperTrack 675 Nov 14, 2022
Timber + Logger Integration. Make Logcat Prettier, show thread information and more.

Pretty Timber Android Logcat Timber + Logger Integration Video Instructions: https://youtu.be/zoS_i8VshCk Code App.kt class App : Application() {

Awesome Dev Notes | Android Dev Notes YouTube 29 Jun 6, 2022
Simple application to log your mood through the day and explain feature flags.

Mood Logger App (Android version) This Repo This repository contains code for building a very basic application to log your mood through the days. The

MongoDB Developer Relations 3 Oct 24, 2021
Library that makes debugging, log collection, filtering and analysis easier.

AndroidLogger Android Library that makes debugging, log collection, filtering and analysis easier. Contains 2 modules: Logger: 'com.github.ShiftHackZ.

ShiftHackZ 2 Jul 13, 2022
Pluto Logger is a Pluto plugin to manage and share your Debug logs

Pluto Logger Plugin Pluto Logger is a Pluto plugin to manage and share your Debug logs. It also comes with Timber support. ?? Integrate plugin in your

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

This is a logger with a small, extensible API which provides utility on top of Android's normal Log class. I copy this class into all the little apps

Jake Wharton 9.9k Jan 8, 2023
Example application using Bugfender SDK in Android

Bugfender Android SDK SDK Installation Here are the main points to getting Bugfender working on your apps: Get an app key at bugfender.com Add Bugfend

Bugfender 37 Dec 7, 2022
Gadget is a library that makes analytics tracking easier for android apps

gadget (In RC Stage) Gadget is a library that makes analytics tracking easier for android apps.

Taylan Sabırcan 54 Nov 29, 2022