2016-07-22 2 views
3

Можно ли настроить ведение журнала 2.5 PlayFramework с помощью logback.groovy вместо logback.xml?Настроить ведение журнала воспроизведения с помощью logback.groovy

У меня есть logback.groovy на моем пути к классам. Я знаю, что это действительно так, потому что оно изначально загружается без ошибок и даже создает пустые файлы журналов.

Воспроизвести затем повторно инициализирует регистратор. Если я начинаю активатор и сделать

[myProj] $ run -Dlogger.resource=/logback.groovy 9999 

Я получаю сообщение об ошибке при попытке загрузить веб-страницу:

ch.qos.logback.core.joran.spi.JoranException: Problem parsing XML document. See previously reported errors. 
    ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:67) 
    ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:134) 
    ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99) 
    ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:49) 
    play.api.libs.logback.LogbackLoggerConfigurator.configure(LogbackLoggerConfigurator.scala:91) 
    play.api.libs.logback.LogbackLoggerConfigurator.configure(LogbackLoggerConfigurator.scala:59) 
    play.api.inject.guice.GuiceApplicationBuilder$$anonfun$applicationModule$1.apply(GuiceApplicationBuilder.scala:102) 
    play.api.inject.guice.GuiceApplicationBuilder$$anonfun$applicationModule$1.apply(GuiceApplicationBuilder.scala:102) 
    scala.Option.foreach(Option.scala:257) 
    play.api.inject.guice.GuiceApplicationBuilder.applicationModule(GuiceApplicationBuilder.scala:101) 
    play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181) 
    play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123) 
    play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21) 
    play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:158) 
    play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:155) 
    play.utils.Threads$.withContextClassLoader(Threads.scala:21) 
    play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:155) 
    play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:126) 
    scala.Option.map(Option.scala:146) 
    play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:126) 
    play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:124) 
    scala.util.Success.flatMap(Try.scala:231) 
    play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:124) 
    play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:116) 
    scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) 
    scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) 
    java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402) 
    java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) 
    java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) 
    java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) 
    java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) 

Учитывая, что сообщение об ошибке ссылается на ошибку синтаксического анализа XML, похоже, Play берет на файл это XML. Есть ли способ настроить ведение журнала в Play с помощью файла groovy?

Я полагаю, что я мог бы повторно инициализировать регистрацию в третий раз, но должен быть лучший способ.

ответ

0

Я ответил на ваш вопрос здесь:

https://github.com/playframework/playframework/issues/7767

Я хотел бы добавить здесь, что вы можете использовать, что вы можете использовать LogbackLoggerConfigurator в качестве начальной точки, чтобы написать свой собственный, так как он уже выполняет большую часть интеграции подводные камни.

Смежные вопросы