Configuring centralized logging from Android apps

Papertrail can accept logs from any Android application using either of the following methods.


  • Add the following to the app’s Gradle dependencies list:
compile 'org.slf4j:slf4j-api:1.7.25'
compile 'com.github.tony19:logback-android:1.1.1-12'
compile ('com.papertrailapp:logback-syslog4j:1.0.0') {
    exclude group: 'ch.qos.logback'
  • Use this configuration file, replacing logsN and XXXXX with the details shown under Log Destinations in Papertrail. YOUR_APP will appear as the program name in the event viewer; replace this with your desired app name.
  <appender name="syslog-tls" class="com.papertrailapp.logback.Syslog4jAppender"> 
    <layout class="ch.qos.logback.classic.PatternLayout">
      <pattern>%d{MMM dd HH:mm:ss} Android YOUR_APP: %-5level %logger{35} %m%n</pattern>

    <syslogConfig class=""> 

  <appender name="async" class="ch.qos.logback.classic.AsyncAppender"> 
    <appender-ref ref="syslog-tls" /> 

  <root level="INFO"> 
    <appender-ref ref="async" /> 


When using ProGuard with minifyEnabled true, add this to

-keep class** { *; }

Otherwise, ProGuard removes the Syslog4j classes, resulting in a runtime error:

java.lang.ClassNotFoundException: Didn't find class ""


Use logback-android and then follow Papertrail’s typical logback setup.

The article Logging from iOS and macOS apps has a few tips for making the most of Papertrail for logs from mobile devices.

Other methods

If neither logback-syslog4j or logback-android are suitable for your app:

  • For Flutter users, the community created a plugin to send logs directly to Papertrail.
  • Look at Logging from iOS and macOS apps for additional language-independent logging methods, like simply sending UDP syslog packets to Papertrail.
  • Let us know. We can usually come up with something and we enjoy the chance.