ch.qos.logback.classic.Level не найден в фильтре Logback & Janino - PullRequest
0 голосов
/ 07 ноября 2019

Я сталкиваюсь с этой проблемой при включении пользовательского репортера Allure для самого крупного . Эта ошибка происходит через scala, но большинство классов в трассировке стека происходят из библиотек Java.

Сообщение об ошибке class "ch.qos.logback.classic.Level" could not be found, хотя в той же трассировке стека он содержит класс в пакете ch.qos.logback.classic.

Мой logback-test.xml имеет фильтр для исключения строккоторые содержат определенную строку. Это прекрасно работает, когда я не использую собственный репортер. Никаких исключений, и журналы корректно отфильтровываются.

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
            <evaluator class="ch.qos.logback.classic.boolex.JaninoEventEvaluator">
                <expression>
                    return logger.contains("DbMigrate");
                </expression>
            </evaluator>
            <OnMismatch>NEUTRAL</OnMismatch>
            <OnMatch>DENY</OnMatch>
        </filter>
        <withJansi>true</withJansi>
        <encoder>
            <pattern>[%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n</pattern>
        </encoder>
    </appender>

Однако после добавления настраиваемого репортера в ScalaTest:

    testOptions in Test ++= Seq(
      Tests.Argument(TestFrameworks.ScalaTest, "-oD"),
      // this is only an issue when the following line is added
      Tests.Argument(TestFrameworks.ScalaTest, "-C", "io.qameta.allure.scalatest.AllureScalatest")
    )

Я получаю следующую ошибку:

ERROR in ch.qos.logback.classic.boolex.JaninoEventEvaluator@7079536e - Could not start evaluator with expression [return logger.contains("DbMigrate");] org.codehaus.commons.compiler.CompileException: Line 1, Column 1: A class "ch.qos.logback.classic.Level" could not be found
    at org.codehaus.commons.compiler.CompileException: Line 1, Column 1: A class "ch.qos.logback.classic.Level" could not be found
    at  at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:12024)
    at  at org.codehaus.janino.UnitCompiler.getSingleTypeImport(UnitCompiler.java:10584)
    at  at org.codehaus.janino.UnitCompiler.checkForConflictWithSingleTypeImport(UnitCompiler.java:453)
    at  at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:409)
    at  at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:227)
    at  at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:390)
    at  at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:385)
    at  at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1594)
    at  at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:385)
    at  at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:363)
    at  at org.codehaus.janino.UnitCompiler.access$000(UnitCompiler.java:227)
    at  at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:337)
    at  at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:334)
    at  at org.codehaus.janino.Java$CompilationUnit.accept(Java.java:363)
    at  at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:334)
    at  at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:236)
    at  at org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:465)
    at  at org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:315)
    at  at org.codehaus.janino.ScriptEvaluator.cook2(ScriptEvaluator.java:727)
    at  at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:716)
    at  at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:663)
    at  at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:631)
    at  at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:206)
    at  at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:79)
    at  at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:74)
    at  at org.codehaus.janino.ScriptEvaluator.<init>(ScriptEvaluator.java:259)
    at  at ch.qos.logback.core.boolex.JaninoEventEvaluatorBase.start(JaninoEventEvaluatorBase.java:57)
    at  at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:161)
    at  at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
    at  at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
    at  at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)
    at  at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
    at  at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)
    at  at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)
    at  at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
    at  at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
    at  at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
    at  at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
    at  at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
    at  at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
    at  at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
    at  at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
    at  at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
    at  at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
    at  at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
    at  at io.qameta.allure.AllureLifecycle.<clinit>(AllureLifecycle.java:55)
    at  at io.qameta.allure.Allure.getLifecycle(Allure.java:70)
    at  at io.qameta.allure.scalatest.AllureScalatest.<init>(AllureScalatest.scala:89)
    at  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at  at java.lang.Class.newInstance(Class.java:442)
    at  at org.scalatest.tools.ReporterFactory.getCustomReporter(ReporterFactory.scala:30)
    at  at org.scalatest.tools.ReporterFactory.createCustomReporter(ReporterFactory.scala:207)
    at  at org.scalatest.tools.ReporterFactory.getReporterFromConfiguration(ReporterFactory.scala:240)
    at  at org.scalatest.tools.ReporterFactory.$anonfun$createReportersFromConfigurations$1(ReporterFactory.scala:248)
    at  at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
    at  at scala.collection.Iterator.foreach(Iterator.scala:941)
    at  at scala.collection.Iterator.foreach$(Iterator.scala:941)
    at  at scala.collection.AbstractIterator.foreach(Iterator.scala:1429)
    at  at scala.collection.IterableLike.foreach(IterableLike.scala:74)
    at  at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
    at  at org.scalatest.tools.ReporterConfigurations.foreach(ReporterConfiguration.scala:42)
    at  at scala.collection.TraversableLike.map(TraversableLike.scala:238)
    at  at scala.collection.TraversableLike.map$(TraversableLike.scala:231)
    at  at org.scalatest.tools.ReporterConfigurations.map(ReporterConfiguration.scala:42)
    at  at org.scalatest.tools.ReporterFactory.createReportersFromConfigurations(ReporterFactory.scala:247)
    at  at org.scalatest.tools.ReporterFactory.getDispatchReporter(ReporterFactory.scala:251)
    at  at org.scalatest.tools.Framework$ScalaTestRunner.<init>(Framework.scala:654)
    at  at org.scalatest.tools.Framework.runner(Framework.scala:1102)
    at  at sbt.Defaults$.$anonfun$createTestRunners$1(Defaults.scala:1095)
    at  at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
    at  at scala.collection.immutable.Map$Map2.foreach(Map.scala:159)
    at  at scala.collection.TraversableLike.map(TraversableLike.scala:238)
    at  at scala.collection.TraversableLike.map$(TraversableLike.scala:231)
    at  at scala.collection.AbstractTraversable.map(Traversable.scala:108)
    at  at sbt.Defaults$.createTestRunners(Defaults.scala:1089)
    at  at sbt.Defaults$.allTestGroupsTask(Defaults.scala:1157)
    at  at sbt.Defaults$.$anonfun$testTasks$10(Defaults.scala:894)
    at  at scala.Function1.$anonfun$compose$1(Function1.scala:49)
    at  at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
    at  at sbt.std.Transform$$anon$4.work(Transform.scala:67)
    at  at sbt.Execute.$anonfun$submit$2(Execute.scala:281)
    at  at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
    at  at sbt.Execute.work(Execute.scala:290)
    at  at sbt.Execute.$anonfun$submit$1(Execute.scala:281)
    at  at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
    at  at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
    at  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at  at java.lang.Thread.run(Thread.java:748)

Соответствующие зависимости и версии:

  • ch.qos.logback / logback-core / jars / logback-core-1.2.3.jar
  • ch.qos.logback / logback-classic / jars / logback-classic-1.2.3.jar
  • io.qameta.allure / allure-java-commons / jars / allure-java-commons-2.13.0.jar
  • io.qameta.allure / allure-model / jars / allure-model-2.13.0.jar
  • io.qameta.allure / allure-scalatest_2.12 / jars / allure-scalatest_2. 12-2.13.0.jar
  • org.codehaus.janino / janino / jars / janino-3.1.0.jar
  • org.codehaus.janino / commons-compiler / jars / commons-compiler-3.1.0.jar

Заранее спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...