ich die folgenden Schritte versucht haben, die Protokollierung für mein akka System zu konfigurieren:Akka slf4j Problem
1.Created beide application.conf und logback.xml Datei und sie im Verzeichnis src/main/resources setzen.
2.application.conf Datei wie folgt aussieht: -
akka {
loggers = ["akka.event.slf4j.Slf4jLogger"]
logging-filter="akka.event.slf4j.Slf4jLoggingFilter"
log-config-on-start = on
loglevel = "DEBUG"
}
3.logback.xml Datei wie folgt aussieht: -
<?xml version="1.0" encoding="UTF-8"?>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<encoder>
<pattern>%X{akkaTimestamp} %-5level[%thread] %logger{0} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/Users/deepak/work/logs/akka.log</file>
<append>true</append>
<encoder>
<pattern>%date{yyyy-MM-dd} %X{akkaTimestamp} %-5level[%thread] %logger{1} - %msg%n</pattern>
</encoder>
</appender>
<logger name="akka" level="DEBUG" />
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
4.sbt Abhängigkeiten zu bauen : -
libraryDependencies += "com.typesafe.akka" % "akka-slf4j_2.11" % "2.4.14"
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.1.3" % Test
5.Akka Version = "2.4.14"
6.Nachdem die JAR-Datei erstellt wurde, habe ich die Datei application.conf überprüft, und logback.xml-Dateien sind darin enthalten. Also, ich glaube nicht, dass es irgendein Klassenpfadproblem ist.
7.My Schauspieler mischt sich mit dem ActorLogging Merkmal. Aber wenn ich die JAR-Datei ausführen kann ich die Protokolle
import akka.actor.{Actor, ActorLogging}
class Reader extends Actor with ActorLogging{
override def receive = {
case _ =>log.info("Reader")
}
}
nicht sehen
Bitte helfen Sie hier. Ich bin nicht in der Lage herauszufinden, die Ausgabe
Mit der obigen sbt Änderung ist es beim Erstellen der JAR-Datei fehlgeschlagen. [Fehler] (*: Assembly) deduplizieren: verschiedene Dateiinhalte im folgenden gefunden: [Fehler] /Users/deepak/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic1. 1.7.jar: org/slf4j/impl/StaticLoggerBinder.class [Fehler] /Users/deepak/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.1.jar:org/slf4j /impl/StaticLoggerBinder.class [Fehler] deduplizieren: verschiedene Dateiinhalte im folgenden gefunden: – Deepakkumar
Ich habe eine solche Ausnahme nicht erhalten. Wenn Sie zusätzliche Bibliotheken haben, die ihre 'logback.xml'-Dateien in Ihrem' build.sbt' enthalten, können sie einen solchen Konflikt verursachen. In diesem Fall sollten Sie eine Zusammenführungsstrategie definieren. Werfen Sie einen Blick auf diese [Fall] (https://stackoverflow.com/questions/30446984/spark-sbt-assembly-deduplicate-different-file-content-found-in-the-followi) Aber ich würde dringend empfehlen Verwenden von [sbt-native-packager] (https://github.com/sbt/sbt-native-packager) zum Erstellen. Sie haben keine Probleme damit. – fcat
@ user3156383 dieser Fehler schlägt vor, dass Sie 2 slf4j Backends in Ihrem Abhängigkeitsbaum haben: Logback und Slf4j-Log4j12. Sie können nur einen haben. Angenommen, Sie möchten ein Logback durchführen, können Sie https://github.com/jrudolph/sbt-dependency-graph verwenden, um herauszufinden, woher die Abhängigkeit von slf4-log4j12 stammt. –