我的日志消息适用于一个类型为 akka 的文件,但不适用于经典演员
My log messages are working for one file with akka typed, but not for classic actor
我不确定发生了什么,但我的日志记录适用于我的 akka 类型演员,但不适用于我的经典演员。
两者也属于同一个根包,这是我的设置:
libraryDependencies ++= Seq(
"io.netty" % "netty-all" % "4.1.68.Final",
"com.typesafe.akka" %% "akka-actor" % AkkaVersion,
"com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion,
"com.typesafe.akka" %% "akka-stream" % AkkaVersion,
"ch.qos.logback" % "logback-classic" % "1.2.10",
scalaTest % Test
)
我的logback.xml是:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>[%date{ISO8601}] [%level] [%logger] [%marker] [%thread] - %msg MDC: {%mdc}%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>target/myapp-dev.log</file>
<encoder>
<pattern>[%date{ISO8601}] [%level] [%logger] [%marker] [%thread] - %msg MDC: {%mdc}%n</pattern>
</encoder>
</appender>
<logger name="myapp" level="ALL" />
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
在这两个文件中,我在导入中都有这个:
package myapp.typed
import ch.qos.logback.classic.Logger
import org.slf4j.LoggerFactory
在我输入的演员中:
context.log.info("Type actors starting...startup message received..")
package myapp.classic
import ch.qos.logback.classic.Logger
import org.slf4j.LoggerFactory
我拥有的经典演员内幕:
.... with ActorLogging {
log.debug("hello...")
在我的主要应用程序中,我这样做:
implicit val system = akka.actor.ActorSystem("my-classic-actor-system")
implicit val typedGuardian = system.spawn(MyTypedActor(), "akka-typed-root")
我不确定这是否相关,但也许是...(混合类型演员与经典)
可能是什么问题?
我会检查您的配置中的日志级别,或明确设置它:
akka {
loglevel = "DEBUG"
log-config-on-start = on # if you want to debug config
}
同时检查使用了哪个记录器:
Akka (2.3.0) fails to load Slf4jEventHandler class with java.lang.ClassNotFoundException
我也没有在您的库中看到 logback 依赖项。类似的东西会起作用:
val AkkaVersion = "2.6.18"
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-slf4j" % AkkaVersion,
"ch.qos.logback" % "logback-classic" % "1.2.9"
)
最后,尝试打印更高的错误,如 info
或 error
以查看是否是日志级别问题。
如果没有任何帮助,您可以调试日志记录代码本身并查看其配置方式,但我认为这没有必要。
我不确定发生了什么,但我的日志记录适用于我的 akka 类型演员,但不适用于我的经典演员。
两者也属于同一个根包,这是我的设置:
libraryDependencies ++= Seq(
"io.netty" % "netty-all" % "4.1.68.Final",
"com.typesafe.akka" %% "akka-actor" % AkkaVersion,
"com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion,
"com.typesafe.akka" %% "akka-stream" % AkkaVersion,
"ch.qos.logback" % "logback-classic" % "1.2.10",
scalaTest % Test
)
我的logback.xml是:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>[%date{ISO8601}] [%level] [%logger] [%marker] [%thread] - %msg MDC: {%mdc}%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>target/myapp-dev.log</file>
<encoder>
<pattern>[%date{ISO8601}] [%level] [%logger] [%marker] [%thread] - %msg MDC: {%mdc}%n</pattern>
</encoder>
</appender>
<logger name="myapp" level="ALL" />
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
在这两个文件中,我在导入中都有这个:
package myapp.typed
import ch.qos.logback.classic.Logger
import org.slf4j.LoggerFactory
在我输入的演员中:
context.log.info("Type actors starting...startup message received..")
package myapp.classic
import ch.qos.logback.classic.Logger
import org.slf4j.LoggerFactory
我拥有的经典演员内幕:
.... with ActorLogging {
log.debug("hello...")
在我的主要应用程序中,我这样做:
implicit val system = akka.actor.ActorSystem("my-classic-actor-system")
implicit val typedGuardian = system.spawn(MyTypedActor(), "akka-typed-root")
我不确定这是否相关,但也许是...(混合类型演员与经典)
可能是什么问题?
我会检查您的配置中的日志级别,或明确设置它:
akka {
loglevel = "DEBUG"
log-config-on-start = on # if you want to debug config
}
同时检查使用了哪个记录器:
Akka (2.3.0) fails to load Slf4jEventHandler class with java.lang.ClassNotFoundException
我也没有在您的库中看到 logback 依赖项。类似的东西会起作用:
val AkkaVersion = "2.6.18"
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-slf4j" % AkkaVersion,
"ch.qos.logback" % "logback-classic" % "1.2.9"
)
最后,尝试打印更高的错误,如 info
或 error
以查看是否是日志级别问题。
如果没有任何帮助,您可以调试日志记录代码本身并查看其配置方式,但我认为这没有必要。