Only events that are logged on level ERROR (or higher) and were generated based on a Throwable are eligible for logging by this appender.
This appender keeps an internal cache of JIRA issues that have been created. If a previous event triggered this appender to create a JIRA issue, then comments on that issue (rather than a new JIRA issue) will be created for similar events. Events are deemed 'similar' if their stacktraces are identical. The exception message is explicitly not part of the identifying part of an event. The cache that is used to store events and corresponding JIRA keys is not persisted in any way. Cache entries will not survive a restart of the JVM. Additionally, events that have not been raised again for some time will be flushed from the cache.
There are two ways to get your hands on the code:
Adding the jar of this project (and its dependencies) to the classpath will allow you to use the class com.marviq.util.logging.JIRALog4jAppender as the base-class for an appender.
BEWARE! Logging straight to JIRA adds considerable overhead to your application. As with all appenders, this load is most likely added to the JVM instance that's also executing your application code. Consider this before you start using the Log4j-appender for JIRA!
A log4j Configuration Example is available. It shows how an asynchronous wrapper can be utilized to help prevent floods of issues and network traffic.