aboutsummaryrefslogtreecommitdiff
path: root/kamon-newrelic/src/main
diff options
context:
space:
mode:
authoradelio <adelio@despegar.com>2014-04-30 13:07:24 -0300
committerDiego <diegolparra@gmail.com>2014-05-01 19:49:51 -0300
commit6e22e6ed4018e7a667f3570186e25c0ca8b6d68d (patch)
tree575f591d62d31aa79074299e84c42f0e09c4e4ae /kamon-newrelic/src/main
parent80f8a5d0b3a6c936453645254c1349b9691b1df2 (diff)
downloadKamon-6e22e6ed4018e7a667f3570186e25c0ca8b6d68d.tar.gz
Kamon-6e22e6ed4018e7a667f3570186e25c0ca8b6d68d.tar.bz2
Kamon-6e22e6ed4018e7a667f3570186e25c0ca8b6d68d.zip
= newrelic: fix ClassCastException in NewRelicErrorLogger
when not using aspectJ weaver, fixes #29
Diffstat (limited to 'kamon-newrelic/src/main')
-rw-r--r--kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala19
1 files changed, 14 insertions, 5 deletions
diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala
index 0f177b9e..4203f81f 100644
--- a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala
+++ b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala
@@ -15,13 +15,15 @@
* ========================================================== */
package kamon.newrelic
-import akka.actor.Actor
+import akka.actor.{ ActorLogging, Actor }
import akka.event.Logging.Error
import akka.event.Logging.{ LoggerInitialized, InitializeLogger }
import com.newrelic.api.agent.{ NewRelic ⇒ NR }
import kamon.trace.TraceContextAware
-class NewRelicErrorLogger extends Actor {
+class NewRelicErrorLogger extends Actor with ActorLogging {
+ var aspectJMissingAlreadyReported = false
+
def receive = {
case InitializeLogger(_) ⇒ sender ! LoggerInitialized
case error @ Error(cause, logSource, logClass, message) ⇒ notifyError(error)
@@ -30,10 +32,17 @@ class NewRelicErrorLogger extends Actor {
def notifyError(error: Error): Unit = {
val params = new java.util.HashMap[String, String]()
- val ctx = error.asInstanceOf[TraceContextAware].traceContext
- for (c ← ctx) {
- params.put("TraceToken", c.token)
+ if (error.isInstanceOf[TraceContextAware]) {
+ val ctx = error.asInstanceOf[TraceContextAware].traceContext
+
+ for (c ← ctx) {
+ params.put("TraceToken", c.token)
+ }
+ } else if (!aspectJMissingAlreadyReported) {
+ log.warning("ASPECTJ WEAVER MISSING. You might have missed to include the javaagent JVM startup parameter in" +
+ " your application. Please refer to http://kamon.io/get-started/ for instructions on how to do it.")
+ aspectJMissingAlreadyReported = true
}
if (error.cause == Error.NoCause) {