2013-07-24 7 views
9

Próbuję użyć niestandardowej klasy układu do logowania logu gry Framework 2.0.zagraj w układ logback układu niestandardowego

pierwsze, definiuje klasę niestandardowy układ w utils:

package utils; 

public class MonitorLayoutForLogback extends LayoutBase<ILoggingEvent> { 
... 
} 

W moim pliku conf/logging.xml, kładę:

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> 
      <layout class="utils.MonitorLayoutForLogback"> 
          <param name="programName" value="uowVisualizer" /> 
          <param name="serviceGroup" value="shared" /> 
          <param name="serviceIdentifier" value="uowVisualizer" /> 
      </layout> 
     </encoder> 
    </appender> 

ale kiedy uruchamiane w grze, np ,

play run 

widzę:

14:20:18,387 |-ERROR in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Could not create component [layout] of type [utils.MonitorLayoutForLogback] java.lang.ClassNotFoundException: utils.M 
onitorLayoutForLogback 
    at java.lang.ClassNotFoundException: utils.MonitorLayoutForLogback 
    at  at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at  at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at  at java.security.AccessController.doPrivileged(Native Method) 
    at  at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at  at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at  at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    at  at sbt.PlayCommands$$anonfun$53$$anonfun$55$$anon$2.loadClass(PlayCommands.scala:535) 
    at  at ch.qos.logback.core.util.Loader.loadClass(Loader.java:124) 
    at  at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:100) 
    at  at ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) 
    at  at ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148) 
    at  at ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) 
    at  at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50) 
    at  at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:157) 
    at  at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:143) 
    at  at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:106) 
    at  at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:56) 
    at  at play.api.Logger$$anonfun$configure$8.apply(Logger.scala:248) 
    at  at play.api.Logger$$anonfun$configure$8.apply(Logger.scala:247) 
    at  at scala.Option.map(Option.scala:145) 
    at  at play.api.Logger$.configure(Logger.scala:247) 
    at  at play.api.Application$class.$init$(Application.scala:266) 

Odtwarzanie nie może znaleźć utworzonej klasy układu. Jak umieścić klasę layoutu na ścieżce klasy?

Zauważ, że próbowałem również inscenizacja projektu Via,

play clean compile stage 

a następnie rozpoczął projekt poprzez

target/start 

Uruchomienie projektu z wersji zapakowanej, nie widzę wyżej brakuje błąd klasy. Jednak nigdy nie widzę żadnego wyjścia, ani nawet nie widzę skonstruowanej klasy. Dodałem oświadczenia System.out.println do każdego konstruktora dla tej klasy, jak następuje, w celu sprawdzenia, czy klasa była skonstruowana:

public MonitorLayoutForLogback() { 
     System.out.println("MonitorLayoutForLogback Constructor without arguments"); 
    } 

    public MonitorLayoutForLogback(String program) { 
     System.out.println("MonitorLayoutForLogback Constructor with program "+program); 
     _program = program; 
    } 

    public MonitorLayoutForLogback(String program, String sGroup, String sid) { 
     System.out.println("MonitorLayoutForLogback Constructor with program "+program+" sGroup "+sGroup+" sid "+sid); 
     _program = program; 
     MonitoringInfo.setServiceGroup(sGroup); 
     MonitoringInfo.setServiceIdentifier(sid); 
    } 

jestem nowicjuszem do logback konfigurację, więc jestem pewien, że brakowało czegoś oczywistego. Dzięki za pomoc.

Odpowiedz

-1

Dla mnie, widziałem ten błąd podczas rozpalania moją aplikację w następujący sposób:

./activator -Dhttp.port=9000 -Dconfig.resource=local.conf -jvm-debug 9999 run 

Ale mam przeszłość za pomocą rozpocząć zamiast biegu

./activator -Dhttp.port=9000 -Dconfig.resource=local.conf -jvm-debug 9999 start 

to jednak stworzył kolejny problem ; nie można znaleźć pliku application.conf. To nie miało znaczenia, że ​​określony plik jako tak:

-Dconfig.resource=local.conf 

Po zmianie nazwy pliku local.conf do application.conf, mój zwyczaj klasa układ do rejestrowania można znaleźć i używane.