aboutsummaryrefslogtreecommitdiff
path: root/kamon-newrelic/src/main/scala/kamon/newrelic
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-newrelic/src/main/scala/kamon/newrelic')
-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) {