2016-11-11 87 views
0

我曾嘗試使用log4j和slf4j與scala中的akka​​,我能夠獲取日誌文件。如果不使用akka API以外的任何外部API,我可以實現相同的功能嗎?通過使用akka.event.Logging我可以在控制檯中打印日誌,但我想將其打印在文件中。我們可以使用akka.event.Logging在文件中寫入日誌嗎?

我已經嘗試在classpath中爲我的項目設置log4j.properties文件,並且在我使用akka.event.Logging時它不工作。

請建議。

+0

你有沒有配置阿卡accordingl? http://doc.akka.io/docs/akka/current/java/logging.html – rethab

+0

是的,我根據這個配置doc.akka.io/docs/akka/current/scala/logging.html –

回答

1

因此這個http://doc.akka.io/docs/akka/current/java/logging.html 你有3種選擇:

  1. 使用akka.event.Logging$DefaultLogger(到stdout,而不是用於生產)
  2. 使用akka.event.slf4j.Slf4jLogger(由阿卡的SLF4J記錄器)
  3. 使用SLF4J API直接(與異步 appender)

您的情況是2或3(您使用log4j.properties)。 因此,您應該正確配置文件log4j.properties以便在文件中輸出。 而

  • 的情況下,2(你想要的情況下),你應該使用akka.event.Logging,例如:Logging.getLogger(system.eventStream(), 「my.string」)
  • 的情況下,3,你應該使用SLF4J API,例如:org.slf4j.LoggerFactory.getLogger(...)

你的情況是2,如果您在阿卡的配置是這樣的使用方法:

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

這個配置做?我做了你提到的以下配置,但我仍然無法獲取日誌文件。 log4j.rootLogger = INFO,文件 log4j.appender.file = org.apache.log4j.DailyRollingFileAppender log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern = [%d] [%p] [%c {1}] [%t] - %m%n log4j.appender.file.file ='。'yyyy-MM-dd log4j.appender.file.file = D:\\ scalalogfile.log –

+0

我能看到我的控制檯中的日誌,但沒有創建日誌文件。 –

+0

它現在正在工作,但我在logback.xml中配置了.... log4j.properties不起作用。 –

相關問題