[INFO] Checking for multiple versions of scala
[WARNING] Expected all dependencies to require Scala version: 2.10.1
[WARNING] com.typesafe.atmos:sample:1.3.1 requires scala version: 2.10.1
[WARNING] com.typesafe.atmos:atmos-event_2.10:1.3.1 requires scala version: 2.10.2
[WARNING] Multiple versions of scala libraries detected!
Then i saw a previous post here for scala 2.10.2 https://docs.google.com/viewer?a=v&pid=forums&srcid=MDE0OTQzNzQ4MzA2ODA3Mjg0NjQBMTgxNzQyMTk2MTc3Mjk1MzE5ODUBUG1FeU5IU0hUbWdKATQBAXYy
and changed pom to the support 2.10.2.
The problem is that i get empty traceId in the atmos.log (and in the console):
2013-11-18 11:51:47,392 INFO [com.typesafe.atmos.sample.PrintActor] [akka://SimpleApp/user/PrintActor] [SimpleApp-akka.actor.default-dispatcher-7] [] : Msg is:Test msg from Ping Actor!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
application.conf:
akka {
loglevel = INFO
loggers = ["akka.event.Logging$DefaultLogger", "akka.event.slf4j.Slf4jLogger"]
}
atmos {
trace {
enabled = true # enable tracing
node = MySampleNode # give this node a name
traceable {
"/user/pingActor" = on # trace the ping actor
}
sampling {
"/user/pingActor" = 1 # sample every trace for ping actor
}
}
}
logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- For assistance related to logback-translator or configuration -->
<!-- files in general, please contact the logback user mailing list -->
<!-- at http://www.qos.ch/mailman/listinfo/logback-user -->
<!-- -->
<!-- For professional support please see -->
<!-- http://www.qos.ch/shop/products/professionalSupport -->
<!-- -->
<configuration scan="false" debug="true">
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{ISO8601} %-5level [%logger{36}] [%X{akkaSource}] [%X{sourceThread}] [%X{traceId}] : %m%n</pattern>
</encoder>
</appender>
<appender name="R" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>logs/atmos.log</File>
<encoder>
<pattern>%date{ISO8601} %-5level [%logger{36}] [%X{akkaSource}] [%X{sourceThread}] [%X{traceId}] : %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/atmos.log.%d{yyyy-MM-dd-HH}</fileNamePattern>
</rollingPolicy>
</appender>
<logger name="org.eclipse.jetty.util.log" level="INFO"/>
<!-- Play2: Off these ones as they are annoying, and anyway we manage configuration ourself -->
<logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" />
<logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" level="OFF" />
<logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" level="OFF" />
<root level="DEBUG">
<appender-ref ref="stdout"/>
<appender-ref ref="R"/>
</root>
</configuration>
sample.scala i used:
package com.typesafe.atmos.sample
import akka.actor._
import akka.actor.ExtendedActorSystem
import scala.concurrent.duration._
import akka.event.Logging
object Sample extends App {
val system = ActorSystem("SimpleApp")
val printActor = system.actorOf(Props[PrintActor], "PrintActor")
val pingActor = system.actorOf(Props(new PingActor(printActor)), "pingActor")
implicit val exec = system.dispatcher
system.eventStream.setLogLevel(Logging.DebugLevel)
system.scheduler.schedule(0 seconds, 1 seconds, pingActor, Ping)
}
case object Ping
case class Print(x: String)
class PingActor(pactor: ActorRef) extends Actor {
def receive = {
case Ping => println("Pinged at: " + System.currentTimeMillis)
pactor ! Print("Test msg from Ping Actor!")
}
}
class PrintActor extends Actor with ActorLogging {
def receive = {
case Print(x) => log.info("Msg is:" + x)
case _ =>
}
}
I am using log.info to see stuff in the files.
If i use the default sample.scala :
package com.typesafe.atmos.sample
import akka.actor._
import scala.concurrent.duration._
object Sample extends App {
val system = ActorSystem("SimpleApp")
val pingActor = system.actorOf(Props[PingActor], "pingActor")
implicit val exec = system.dispatcher
system.scheduler.schedule(0 seconds, 1 seconds, pingActor, Ping)
}
case object Ping
class PingActor extends Actor {
def receive = {
case Ping => println("Pinged at: " + System.currentTimeMillis)
}
}
Console output is not correct...logback encoding is ignored...
[WARN] [11/18/2013 11:56:53.816] [atmos-atmos-trace-dispatcher-8] [akka://atmos/
user/2_SystemMetricsMonitor] Couldn't monitor [systemLoadAverage]. Due to [This
method has not been implemented on this platform]
[WARN] [11/18/2013 11:56:54.325] [atmos-atmos-trace-dispatcher-8] [akka://atmos/
user/2_SystemMetricsMonitor] Couldn't monitor [loadAverage]. Due to [This method
has not been implemented on this platform]
Pinged at: 1384768614537
Pinged at: 1384768615525
Pinged at: 1384768616535
Pinged at: 1384768617535
Pinged at: 1384768618534
Pinged at: 1384768619536
Pinged at: 1384768620595
Pinged at: 1384768621536
Any ideas?
Regards,
Stavros K.