相关疑难解决方法(0)

Akka SLF4J和Scala中的logback

我正在尝试为我的akka​​ actor系统设置一些基本的日志记录,但到目前为止我只获取标准日志而不是我添加的日志或输出文件.我已经跟踪了用于日志记录akka文档,并设置了以下内容:

  • 我将这些依赖项添加到build.sbt文件中

    "com.typesafe.akka" %% "akka-slf4j" % "2.3.14"
    "ch.qos.logback" % "logback-classic" % "1.0.9"
    
    Run Code Online (Sandbox Code Playgroud)
  • 我将其添加到application.conf文件中

    akka {
        loggers = ["akka.event.slf4j.Slf4jLogger"]
        loglevel = "DEBUG"
    }  
    
    Run Code Online (Sandbox Code Playgroud)
  • 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>
    
    Run Code Online (Sandbox Code Playgroud)
  • 这就是我跳跃应该做的日志记录

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

我没有收到标准日志记录中的失败消息,也没有找到与我已有的解决方案有很大不同的其他解决方案.我已经尝试过这个问题的建议.这似乎是我遇到的同样问题,但这些建议没有用.我错过了一步或配置错了吗?

logging scala logback slf4j akka

7
推荐指数
1
解决办法
2856
查看次数

Scalalogging在sbt playproject中不能用于记录到stdout

我的sbt基于这个伟大的答案设置:困惑如何设置多项目sbt项目

所以在Dependencies.scala增加了:

val scalaLogging = "com.typesafe.scala-logging" %% "scala-logging-slf4j" % scalaLoggingVersion
//val logbackCore = "ch.qos.logback" % "logback-core" % logbackVersion
val logbackClassic = "ch.qos.logback" % "logback-classic" % logbackVersion
Run Code Online (Sandbox Code Playgroud)

(注释掉了logbackCore- 我甚至需要那个吗?)

已添加scalaLogging并添加logbackClassic到commonDependencies(已删除其他库):

val commonDependencies: Seq[ModuleID] = Seq(
    scalaLogging,
    //slf4j,
    //logbackCore,
    logbackClassic
)
Run Code Online (Sandbox Code Playgroud)

同样在/servicessbt模块中,将其添加到UserServiceImpl类中:

import com.typesafe.scalalogging.slf4j.LazyLogging
class UserServiceImpl (.....) extends SecurityService with LazyLogging {

    def show(.....) {
        logger.trace("UserService.show called")
        logger.debug("UserService.show called")
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,在/ services/resources中,添加了logback.xml:

<configuration>

    <appender …
Run Code Online (Sandbox Code Playgroud)

scala logback slf4j playframework

6
推荐指数
1
解决办法
1702
查看次数

为什么我的 akka 日志在游戏中不起作用

我的记录在我的播放代码中工作正常,但我拥有的 akka 代码没有记录到文件/标准输出。

class EmailActor extends Actor with ActorLogging {
  import EmailActor._

  log.info("email actor hatched..")
...
}
Run Code Online (Sandbox Code Playgroud)

当我创建这个 actor 时,我在日志文件或标准输出中都看不到日志条目。

我有这个激活器模板的默认 application.conf:https : //github.com/playframework/play-scala/blob/master/conf/logback.xml

我需要用一些 akka 标签修改我的 logback 文件吗?

更新

我现在已经在我的 application.conf 中做到了这一点:

akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  #loggers = ["akka.event.Logging$DefaultLogger"]

  loglevel = "DEBUG"
  logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"

  actor {
    debug {
      lifecycle = on
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的依赖项中,我添加了这个(并且都添加到了我的播放应用程序的 dep):

val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % Version.akkaSlf4j
val logback = "ch.qos.logback" % "logback-classic" % Version.logback
Run Code Online (Sandbox Code Playgroud)

我的 logback.xml 看起来像:

<!-- …
Run Code Online (Sandbox Code Playgroud)

scala akka playframework

3
推荐指数
1
解决办法
1373
查看次数

标签 统计

scala ×3

akka ×2

logback ×2

playframework ×2

slf4j ×2

logging ×1