Playframework 在运行中实例化自定义logback appender时发生ClassNotFoundException

Playframework 在运行中实例化自定义logback appender时发生ClassNotFoundException,playframework,logback,Playframework,Logback,类似的问题有很多,但我仍然不理解问题的本质 我有一个SBT项目,其中定义了自定义附加器。 在logback.xml文件中指定了完全限定的类名。 使用appender显式播放项目dependsOn该项目。 开始播放时,类路径包括appender类的路径,但我看到了错误 另一方面,Akka项目实例化了相同的appender,没有任何错误 那么,加载具有类文件所在目录的绝对路径的类有什么特别之处呢?如何配置logback.xml?你把它放在哪里?是否传递任何系统属性以配置回登录?Play-dev模

类似的问题有很多,但我仍然不理解问题的本质

  • 我有一个SBT项目,其中定义了自定义附加器。
  • 在logback.xml文件中指定了完全限定的类名。
  • 使用appender显式播放项目
    dependsOn
    该项目。
  • 开始播放时,类路径包括appender类的路径,但我看到了错误
另一方面,Akka项目实例化了相同的appender,没有任何错误


那么,加载具有类文件所在目录的绝对路径的类有什么特别之处呢?

如何配置
logback.xml
?你把它放在哪里?是否传递任何系统属性以配置回登录?Play-dev模式类路径相对复杂,为了支持热重新加载,Play第一次启动时,应用程序类不在类路径上,而是动态添加(并删除,每次重新加载时都替换为新类)。@JamesRoper这变得更加混乱。对我来说,类路径就是JVM查找类文件的路径。我天真的期望是,
dependsOn
让SBT设置正确的类路径并开始播放项目。根据您接下来所说的,Play有自己的动态解析方式,仅适用于dev模式。与prod相比,这种行为并不是扩展,而是完全不同的。它在什么地方被记录了吗?类加载很少有那么简单,在JavaEE中经常有类加载程序的继承人,而OSGi则是另一种野兽。但是,你没有回答我的问题,你是如何配置logback的?例如,您是否使用系统属性传递配置文件的路径?@JamesRoper,没什么特别的,它只是
conf
目录中的logback.xml。Play只是读它。注释掉appender将删除错误。您使用的是Java还是Scala,如果是Scala,您使用的是编译时DI还是GUI?