簡體   English   中英

Akka SLF4J和Scala中的logback

[英]Akka SLF4J and logback in Scala

我正在嘗試為我的akka​​ actor系統設置一些基本的日志記錄,但到目前為止我只獲取標准日志而不是我添加的日志或輸出文件。 我已經跟蹤了用於日志記錄akka文檔,並設置了以下內容:

  • 我將這些依賴項添加到build.sbt文件中

     "com.typesafe.akka" %% "akka-slf4j" % "2.3.14" "ch.qos.logback" % "logback-classic" % "1.0.9" 
  • 我將其添加到application.conf文件中

     akka { loggers = ["akka.event.slf4j.Slf4jLogger"] loglevel = "DEBUG" } 
  • logback.xml位於src / main / resources中

     <configuration> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <File>./logs/akka.log</File> <encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="FILE" /> </root> </configuration> 
  • 這就是我跳躍應該做的日志記錄

     import akka.event.Logging val log = Logging(context.system, classOf[TickActor]) log.info("Good Luck!") 

我沒有收到標准日志記錄中的失敗消息,也沒有找到與我已有的解決方案有很大不同的其他解決方案。 我已經嘗試過這個問題的建議。 這似乎是我遇到的同樣問題,但這些建議沒有用。 我錯過了一步或配置錯了嗎?

除了缺少的akka.logging-filter設置外,一切看起來都是正確的。 這里應該是這樣的:

akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "DEBUG"
  logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
}

這是一個具有相同設置的項目,具有日志記錄功能: application.conflogback.xml

文檔說明:

您需要在Configuration中的loggers元素中啟用Slf4jLogger。 您還可以在此處定義事件總線的日志級別。 可以在SLF4J后端的配置中定義更細粒度的日志級別(例如logback.xml)。 您還應該在logging-filter配置屬性中定義akka.event.slf4j.Slf4jLoggingFilter。 它將在發布到事件總線之前使用后端配置(例如logback.xml)過濾日志事件。

警告! 如果將loglevel設置為高於“DEBUG”的級別,則任何DEBUG事件都將在源處過濾掉,並且永遠不會到達日志記錄后端,無論后端如何配置。

你已經照顧好了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM