Po pierwsze, może Ci się spodobać, dlaczego rejestracja jest wyłączona w trybie testowym. To była odpowiedź Guillaume Bort do pytania na forum gry (patrz this thread):
Rejestrator jest wyłączony w trybie testowym do teraz, ponieważ został powodując wyciek ogromna przestrzeń PermGen podczas uruchamiania testów. Ale pracujemy nad testami w rozwidlonej maszynie JVM, więc wkrótce włączymy ją ponownie.
Jako obejście, tworzę własny rejestrator tak (kod Scala):
import play.api.{Play, LoggerLike, Logger}
import org.slf4j.LoggerFactory
import org.slf4j.impl.SimpleLoggerFactory
object MyLogger extends LoggerLike {
val factory = if (Play.isTest(Play.current)) {
new SimpleLoggerFactory()
} else {
LoggerFactory.getILoggerFactory
}
val redirectDebugToInfo = factory.isInstanceOf[SimpleLoggerFactory]
val logger = factory.getLogger("application")
def apply(name: String): Logger = new Logger(factory.getLogger(name))
def apply[T](clazz: Class[T]): Logger = new Logger(factory.getLogger(clazz.getCanonicalName))
// this method is to make debug statements to show up in test mode
override def debug(m: => String) = {
if (redirectDebugToInfo) {
info(m)
} else {
super.debug(m)
}
}
}
nie wiem jak ten kod zachowuje się w sprawie przecieku PermGen w ogóle, ale do tej pory nie zrobił mi nie ma tego problemu. Aby pracować trzeba dodać tę zależność:
"org.slf4j" % "slf4j-simple" % "1.6.4"
Jak radzisz sobie z 'slf4j : Ścieżka klasy zawiera wiele powiązań SLF4J. Ostrzeżenie? – Rajish
@Rajish Nie radzę sobie z tym, ponieważ jest to tymczasowe obejście problemu. Dla mnie ostrzeżenie nie dało żadnych problemów. Czy daje ci to jakieś problemy? – rintcius
@rintcius Dzięki za obejście problemu! Używam java i o ile wiem, mogę po prostu miksować kod scala. Dodałem to jako plik scala do mojego projektu java, ale to nie działa. Patrząc na twój kod, powinienem móc logować się jak zwykle myśli Logger.debug ("debugowanie")? Dodałem również zależności. –