This HoptoadAppender is for use with LOGBack (http://logback.qos.ch) to log errors and warnings to the Hoptoad (http://hoptoadapp.com) application. It uses the excellent Databinder Dispatch library for doing asynchronous HTTP calls to the Hoptoad application.
It's recommended that you configure the HoptoadAppender with a Filter that will limit logging messages to the ERROR level only.
<configuration>
  <appender name="HOPTOAD" class="com.gs.logging.HoptoadAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>ERROR</level>
    </filter>
    <apiKey><!-- INSERT HOPTOAD API KEY HERE --></apiKey>
    <secure>false</secure> <!-- Change to true if you are using HTTPS for Hoptoad -->
  </appender>
  
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>
        %-4relative [%thread] %-5level %logger{30} - %msg%n
      </pattern>
    </encoder>
  </appender>
  
  <root level="DEBUG">
    <appender-ref ref="HOPTOAD" />
    <appender-ref ref="CONSOLE" />
  </root>
</configuration>
For several logging variables, the HoptoadAppender uses MDC to provide the appropriate varaibles to include in the Hoptoad notice. These should be configured using a filter or some other way of injecting the variables into the MDC of the thread.
The following variables are required in the MDC:
- com.gs.logging.HoptoadLayout.ENVIRONMENT_NAME
 
The following variables are optional:
- com.gs.logging.HoptoadLayout.PROJECT_ROOT
 - com.gs.logging.HoptoadLayout.REQUEST_URL
 
If the REQUEST_URL is specified, then the following can also be set:
- com.gs.logging.HoptoadLayout.REQUEST_COMPONENT (required)
 - com.gs.logging.HoptoadLayout.REQUEST_ACTION
 - com.gs.logging.HoptoadLayout.REQUEST_PARAMS
 - com.gs.logging.HoptoadLayout.SESSION_PARAMS
 - com.gs.logging.HoptoadLayout.CGI_PARAMS
 
The REQUEST_PARAMS, SESSION_PARAMS and CGI_PARAMS should be ampersand delimited, URL encoded key/value pairs.
Because the above static variables are declared in Scala, you'll have to set them like this if you are using Java:
import org.slf4j.MDC;
MDC.setProperty(com.gs.logging.HoptoadLayout.ENVIRONMENT_NAME(), "production")
If you don't like the extra parens that you have to use, then you should be using Scala instead of Java :-)
slf4j-hoptoad is released under the Apache 2 License.